Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(952)

Side by Side Diff: src/gpu/GrDrawTarget.cpp

Issue 773433002: Add a base class for GrIODB that handles geometry data (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: cleanup Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/GrDrawTarget.h ('k') | src/gpu/GrFlushToGpuDrawTarget.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 9
10 10
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 465
466 if (devBounds) { 466 if (devBounds) {
467 info.setDevBounds(*devBounds); 467 info.setDevBounds(*devBounds);
468 } 468 }
469 469
470 // TODO: We should continue with incorrect blending. 470 // TODO: We should continue with incorrect blending.
471 GrDeviceCoordTexture dstCopy; 471 GrDeviceCoordTexture dstCopy;
472 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) { 472 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) {
473 return; 473 return;
474 } 474 }
475 this->setDrawBuffers(&info); 475 this->setDrawBuffers(&info, ds->getVertexStride());
476 476
477 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NUL L); 477 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NUL L);
478 } 478 }
479 } 479 }
480 480
481 void GrDrawTarget::drawNonIndexed(GrDrawState* ds, 481 void GrDrawTarget::drawNonIndexed(GrDrawState* ds,
482 GrPrimitiveType type, 482 GrPrimitiveType type,
483 int startVertex, 483 int startVertex,
484 int vertexCount, 484 int vertexCount,
485 const SkRect* devBounds) { 485 const SkRect* devBounds) {
(...skipping 22 matching lines...) Expand all
508 if (devBounds) { 508 if (devBounds) {
509 info.setDevBounds(*devBounds); 509 info.setDevBounds(*devBounds);
510 } 510 }
511 511
512 // TODO: We should continue with incorrect blending. 512 // TODO: We should continue with incorrect blending.
513 GrDeviceCoordTexture dstCopy; 513 GrDeviceCoordTexture dstCopy;
514 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) { 514 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) {
515 return; 515 return;
516 } 516 }
517 517
518 this->setDrawBuffers(&info); 518 this->setDrawBuffers(&info, ds->getVertexStride());
519 519
520 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NUL L); 520 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NUL L);
521 } 521 }
522 } 522 }
523 523
524 static const GrStencilSettings& winding_path_stencil_settings() { 524 static const GrStencilSettings& winding_path_stencil_settings() {
525 GR_STATIC_CONST_SAME_STENCIL_STRUCT(gSettings, 525 GR_STATIC_CONST_SAME_STENCIL_STRUCT(gSettings,
526 kIncClamp_StencilOp, 526 kIncClamp_StencilOp,
527 kIncClamp_StencilOp, 527 kIncClamp_StencilOp,
528 kAlwaysIfInClip_StencilFunc, 528 kAlwaysIfInClip_StencilFunc,
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 GrDeviceCoordTexture dstCopy; 766 GrDeviceCoordTexture dstCopy;
767 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) { 767 if (!this->setupDstReadIfNecessary(ds, &dstCopy, devBounds)) {
768 return; 768 return;
769 } 769 }
770 770
771 while (instanceCount) { 771 while (instanceCount) {
772 info.fInstanceCount = SkTMin(instanceCount, maxInstancesPerDraw); 772 info.fInstanceCount = SkTMin(instanceCount, maxInstancesPerDraw);
773 info.fVertexCount = info.fInstanceCount * verticesPerInstance; 773 info.fVertexCount = info.fInstanceCount * verticesPerInstance;
774 info.fIndexCount = info.fInstanceCount * indicesPerInstance; 774 info.fIndexCount = info.fInstanceCount * indicesPerInstance;
775 775
776 this->setDrawBuffers(&info);
777
778 if (this->checkDraw(*ds, 776 if (this->checkDraw(*ds,
779 type, 777 type,
780 info.fStartVertex, 778 info.fStartVertex,
781 info.fStartIndex, 779 info.fStartIndex,
782 info.fVertexCount, 780 info.fVertexCount,
783 info.fIndexCount)) { 781 info.fIndexCount)) {
782 this->setDrawBuffers(&info, ds->getVertexStride());
784 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NULL); 783 this->onDraw(*ds, info, scissorState, dstCopy.texture() ? &dstCopy : NULL);
785 } 784 }
786 info.fStartVertex += info.fVertexCount; 785 info.fStartVertex += info.fVertexCount;
787 instanceCount -= info.fInstanceCount; 786 instanceCount -= info.fInstanceCount;
788 } 787 }
789 } 788 }
790 789
791 //////////////////////////////////////////////////////////////////////////////// 790 ////////////////////////////////////////////////////////////////////////////////
792 791
793 GrDrawTarget::AutoReleaseGeometry::AutoReleaseGeometry( 792 GrDrawTarget::AutoReleaseGeometry::AutoReleaseGeometry(
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 GrDrawState::AutoRestoreStencil* ars, 1158 GrDrawState::AutoRestoreStencil* ars,
1160 GrDrawState* ds, 1159 GrDrawState* ds,
1161 GrClipMaskManager::ScissorState* scissorState) { 1160 GrClipMaskManager::ScissorState* scissorState) {
1162 return fClipMaskManager.setupClipping(ds, 1161 return fClipMaskManager.setupClipping(ds,
1163 are, 1162 are,
1164 ars, 1163 ars,
1165 scissorState, 1164 scissorState,
1166 this->getClip(), 1165 this->getClip(),
1167 devBounds); 1166 devBounds);
1168 } 1167 }
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTarget.h ('k') | src/gpu/GrFlushToGpuDrawTarget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698