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

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

Issue 16952006: Replace fixed-size array of effect stages in GrDrawState with two appendable arrays, one for color,… (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: fix comments Created 7 years, 6 months 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 | Annotate | Revision Log
« no previous file with comments | « src/gpu/GrDrawTarget.h ('k') | src/gpu/GrGpu.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 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 case kBuffer_GeometrySrcType: 380 case kBuffer_GeometrySrcType:
381 maxValidIndex = geoSrc.fIndexBuffer->sizeInBytes() / sizeof(uint 16_t); 381 maxValidIndex = geoSrc.fIndexBuffer->sizeInBytes() / sizeof(uint 16_t);
382 break; 382 break;
383 } 383 }
384 if (maxIndex > maxValidIndex) { 384 if (maxIndex > maxValidIndex) {
385 GrCrash("Index reads outside valid index range."); 385 GrCrash("Index reads outside valid index range.");
386 } 386 }
387 } 387 }
388 388
389 GrAssert(NULL != drawState.getRenderTarget()); 389 GrAssert(NULL != drawState.getRenderTarget());
390 for (int s = 0; s < GrDrawState::kNumStages; ++s) { 390
391 if (drawState.isStageEnabled(s)) { 391 for (int s = 0; s < drawState.numColorStages(); ++s) {
392 const GrEffectRef& effect = *drawState.getStage(s).getEffect(); 392 const GrEffectRef& effect = *drawState.getColorStage(s).getEffect();
393 int numTextures = effect->numTextures(); 393 int numTextures = effect->numTextures();
394 for (int t = 0; t < numTextures; ++t) { 394 for (int t = 0; t < numTextures; ++t) {
395 GrTexture* texture = effect->texture(t); 395 GrTexture* texture = effect->texture(t);
396 GrAssert(texture->asRenderTarget() != drawState.getRenderTarget( )); 396 GrAssert(texture->asRenderTarget() != drawState.getRenderTarget());
397 } 397 }
398 }
399 for (int s = 0; s < drawState.numCoverageStages(); ++s) {
400 const GrEffectRef& effect = *drawState.getCoverageStage(s).getEffect();
401 int numTextures = effect->numTextures();
402 for (int t = 0; t < numTextures; ++t) {
403 GrTexture* texture = effect->texture(t);
404 GrAssert(texture->asRenderTarget() != drawState.getRenderTarget());
398 } 405 }
399 } 406 }
400 407
401 GrAssert(drawState.validateVertexAttribs()); 408 GrAssert(drawState.validateVertexAttribs());
402 #endif 409 #endif
403 if (NULL == drawState.getRenderTarget()) { 410 if (NULL == drawState.getRenderTarget()) {
404 return false; 411 return false;
405 } 412 }
406 return true; 413 return true;
407 } 414 }
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 912
906 GrRenderTarget* rt = dst->asRenderTarget(); 913 GrRenderTarget* rt = dst->asRenderTarget();
907 GrTexture* tex = src->asTexture(); 914 GrTexture* tex = src->asTexture();
908 915
909 GrDrawTarget::AutoStateRestore asr(this, kReset_ASRInit); 916 GrDrawTarget::AutoStateRestore asr(this, kReset_ASRInit);
910 this->drawState()->setRenderTarget(rt); 917 this->drawState()->setRenderTarget(rt);
911 SkMatrix matrix; 918 SkMatrix matrix;
912 matrix.setTranslate(SkIntToScalar(srcRect.fLeft - dstPoint.fX), 919 matrix.setTranslate(SkIntToScalar(srcRect.fLeft - dstPoint.fX),
913 SkIntToScalar(srcRect.fTop - dstPoint.fY)); 920 SkIntToScalar(srcRect.fTop - dstPoint.fY));
914 matrix.postIDiv(tex->width(), tex->height()); 921 matrix.postIDiv(tex->width(), tex->height());
915 this->drawState()->createTextureEffect(0, tex, matrix); 922 this->drawState()->addColorTextureEffect(tex, matrix);
916 SkIRect dstRect = SkIRect::MakeXYWH(dstPoint.fX, 923 SkIRect dstRect = SkIRect::MakeXYWH(dstPoint.fX,
917 dstPoint.fY, 924 dstPoint.fY,
918 srcRect.width(), 925 srcRect.width(),
919 srcRect.height()); 926 srcRect.height());
920 this->drawSimpleRect(dstRect); 927 this->drawSimpleRect(dstRect);
921 return true; 928 return true;
922 } 929 }
923 930
924 void GrDrawTarget::initCopySurfaceDstDesc(const GrSurface* src, GrTextureDesc* d esc) { 931 void GrDrawTarget::initCopySurfaceDstDesc(const GrSurface* src, GrTextureDesc* d esc) {
925 // Make the dst of the copy be a render target because the default copySurfa ce draws to the dst. 932 // Make the dst of the copy be a render target because the default copySurfa ce draws to the dst.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 GrPrintf("Shader Derivative Support : %s\n", gNY[fShaderDerivativeSupport] ); 985 GrPrintf("Shader Derivative Support : %s\n", gNY[fShaderDerivativeSupport] );
979 GrPrintf("Geometry Shader Support : %s\n", gNY[fGeometryShaderSupport]); 986 GrPrintf("Geometry Shader Support : %s\n", gNY[fGeometryShaderSupport]);
980 GrPrintf("Dual Source Blending Support: %s\n", gNY[fDualSourceBlendingSuppor t]); 987 GrPrintf("Dual Source Blending Support: %s\n", gNY[fDualSourceBlendingSuppor t]);
981 GrPrintf("Buffer Lock Support : %s\n", gNY[fBufferLockSupport]); 988 GrPrintf("Buffer Lock Support : %s\n", gNY[fBufferLockSupport]);
982 GrPrintf("Path Stenciling Support : %s\n", gNY[fPathStencilingSupport]); 989 GrPrintf("Path Stenciling Support : %s\n", gNY[fPathStencilingSupport]);
983 GrPrintf("Dst Read In Shader Support : %s\n", gNY[fDstReadInShaderSupport]) ; 990 GrPrintf("Dst Read In Shader Support : %s\n", gNY[fDstReadInShaderSupport]) ;
984 GrPrintf("Max Texture Size : %d\n", fMaxTextureSize); 991 GrPrintf("Max Texture Size : %d\n", fMaxTextureSize);
985 GrPrintf("Max Render Target Size : %d\n", fMaxRenderTargetSize); 992 GrPrintf("Max Render Target Size : %d\n", fMaxRenderTargetSize);
986 GrPrintf("Max Sample Count : %d\n", fMaxSampleCount); 993 GrPrintf("Max Sample Count : %d\n", fMaxSampleCount);
987 } 994 }
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTarget.h ('k') | src/gpu/GrGpu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698