| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 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 // This is a GPU-backend specific test. It relies on static intializers to work | 9 // This is a GPU-backend specific test. It relies on static intializers to work |
| 10 | 10 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 // setup render target | 104 // setup render target |
| 105 GrTextureParams params; | 105 GrTextureParams params; |
| 106 GrTextureDesc texDesc; | 106 GrTextureDesc texDesc; |
| 107 texDesc.fWidth = kRenderTargetWidth; | 107 texDesc.fWidth = kRenderTargetWidth; |
| 108 texDesc.fHeight = kRenderTargetHeight; | 108 texDesc.fHeight = kRenderTargetHeight; |
| 109 texDesc.fFlags = kRenderTarget_GrTextureFlagBit; | 109 texDesc.fFlags = kRenderTarget_GrTextureFlagBit; |
| 110 texDesc.fConfig = kRGBA_8888_GrPixelConfig; | 110 texDesc.fConfig = kRGBA_8888_GrPixelConfig; |
| 111 texDesc.fOrigin = random->nextBool() == true ? kTopLeft_GrSurfaceOrigin : | 111 texDesc.fOrigin = random->nextBool() == true ? kTopLeft_GrSurfaceOrigin : |
| 112 kBottomLeft_GrSurfaceOrigin; | 112 kBottomLeft_GrSurfaceOrigin; |
| 113 | 113 |
| 114 GrTexture* texture = gpu->getContext()->findAndRefTexture(texDesc, cacheId,
¶ms); | 114 SkAutoTUnref<GrTexture> texture( |
| 115 if (NULL == texture) { | 115 gpu->getContext()->findAndRefTexture(texDesc, cacheId, ¶ms)); |
| 116 texture = gpu->getContext()->createTexture(¶ms, texDesc, cacheId, 0,
0); | 116 if (!texture) { |
| 117 if (NULL == texture) { | 117 texture.reset(gpu->getContext()->createTexture(¶ms, texDesc, cacheId
, 0, 0)); |
| 118 if (!texture) { |
| 118 return NULL; | 119 return NULL; |
| 119 } | 120 } |
| 120 } | 121 } |
| 121 return texture->asRenderTarget(); | 122 return SkRef(texture->asRenderTarget()); |
| 122 } | 123 } |
| 123 | 124 |
| 124 // TODO clean this up, we have to do this to test geometry processors but there
has got to be | 125 // TODO clean this up, we have to do this to test geometry processors but there
has got to be |
| 125 // a better way. In the mean time, we actually fill out these generic vertex at
tribs below with | 126 // a better way. In the mean time, we actually fill out these generic vertex at
tribs below with |
| 126 // the correct vertex attribs from the GP. We have to ensure, however, we don't
try to add more | 127 // the correct vertex attribs from the GP. We have to ensure, however, we don't
try to add more |
| 127 // than two attributes. In addition, we 'pad' the below array with GPs up to 6
entries, 4 fixed | 128 // than two attributes. In addition, we 'pad' the below array with GPs up to 6
entries, 4 fixed |
| 128 // function vertex attributes and 2 GP custom attributes. | 129 // function vertex attributes and 2 GP custom attributes. |
| 129 GrVertexAttrib kGenericVertexAttribs[] = { | 130 GrVertexAttrib kGenericVertexAttribs[] = { |
| 130 { kVec2f_GrVertexAttribType, 0, kPosition_GrVertexAttribBinding }, | 131 { kVec2f_GrVertexAttribType, 0, kPosition_GrVertexAttribBinding }, |
| 131 { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding }
, | 132 { kVec2f_GrVertexAttribType, 0, kGeometryProcessor_GrVertexAttribBinding }
, |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 | 411 |
| 411 // wrap the SkClipStack in a GrClipData | 412 // wrap the SkClipStack in a GrClipData |
| 412 GrClipData clipData; | 413 GrClipData clipData; |
| 413 clipData.fClipStack = &stack; | 414 clipData.fClipStack = &stack; |
| 414 this->setClip(&clipData); | 415 this->setClip(&clipData); |
| 415 | 416 |
| 416 SkRandom random; | 417 SkRandom random; |
| 417 static const int NUM_TESTS = 512; | 418 static const int NUM_TESTS = 512; |
| 418 for (int t = 0; t < NUM_TESTS;) { | 419 for (int t = 0; t < NUM_TESTS;) { |
| 419 // setup random render target(can fail) | 420 // setup random render target(can fail) |
| 420 GrRenderTarget* rtPtr = random_render_target(this, glProgramsCacheID, &r
andom); | 421 SkAutoTUnref<GrRenderTarget> rt(random_render_target(this, glProgramsCac
heID, &random)); |
| 421 if (!rtPtr) { | 422 if (!rt) { |
| 422 SkDebugf("Could not allocate render target"); | 423 SkDebugf("Could not allocate render target"); |
| 423 return false; | 424 return false; |
| 424 } | 425 } |
| 425 GrTGpuResourceRef<GrRenderTarget> rt(SkRef(rtPtr), kWrite_GrIOType); | |
| 426 | 426 |
| 427 GrDrawState* ds = this->drawState(); | 427 GrDrawState* ds = this->drawState(); |
| 428 ds->setRenderTarget(rt.get()); | 428 ds->setRenderTarget(rt.get()); |
| 429 | 429 |
| 430 // if path rendering we have to setup a couple of things like the draw t
ype | 430 // if path rendering we have to setup a couple of things like the draw t
ype |
| 431 bool usePathRendering = this->glCaps().pathRenderingSupport() && random.
nextBool(); | 431 bool usePathRendering = this->glCaps().pathRenderingSupport() && random.
nextBool(); |
| 432 | 432 |
| 433 GrGpu::DrawType drawType = usePathRendering ? GrGpu::kDrawPath_DrawType
: | 433 GrGpu::DrawType drawType = usePathRendering ? GrGpu::kDrawPath_DrawType
: |
| 434 GrGpu::kDrawPoints_DrawTyp
e; | 434 GrGpu::kDrawPoints_DrawTyp
e; |
| 435 | 435 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 if (type == GrContextFactory::kANGLE_GLContextType) { | 514 if (type == GrContextFactory::kANGLE_GLContextType) { |
| 515 maxStages = 3; | 515 maxStages = 3; |
| 516 } | 516 } |
| 517 #endif | 517 #endif |
| 518 REPORTER_ASSERT(reporter, gpu->programUnitTest(maxStages)); | 518 REPORTER_ASSERT(reporter, gpu->programUnitTest(maxStages)); |
| 519 } | 519 } |
| 520 } | 520 } |
| 521 } | 521 } |
| 522 | 522 |
| 523 #endif | 523 #endif |
| OLD | NEW |