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

Side by Side Diff: cc/gl_renderer.cc

Issue 12217047: Fix Y-flipped lighting in accelerated SVG reference filters in CSS. Since the compositor draws all… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated to ToT Created 7 years, 10 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 | « no previous file | skia/skia_test_expectations.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/gl_renderer.h" 5 #include "cc/gl_renderer.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 renderer->context()->flush(); 415 renderer->context()->flush();
416 416
417 ResourceProvider::ScopedWriteLockGL lock(renderer->resourceProvider(), sourc eTexture->id()); 417 ResourceProvider::ScopedWriteLockGL lock(renderer->resourceProvider(), sourc eTexture->id());
418 418
419 // Wrap the source texture in a Ganesh platform texture. 419 // Wrap the source texture in a Ganesh platform texture.
420 GrBackendTextureDesc backendTextureDescription; 420 GrBackendTextureDesc backendTextureDescription;
421 backendTextureDescription.fWidth = sourceTexture->size().width(); 421 backendTextureDescription.fWidth = sourceTexture->size().width();
422 backendTextureDescription.fHeight = sourceTexture->size().height(); 422 backendTextureDescription.fHeight = sourceTexture->size().height();
423 backendTextureDescription.fConfig = kSkia8888_GrPixelConfig; 423 backendTextureDescription.fConfig = kSkia8888_GrPixelConfig;
424 backendTextureDescription.fTextureHandle = lock.textureId(); 424 backendTextureDescription.fTextureHandle = lock.textureId();
425 backendTextureDescription.fOrigin = kTopLeft_GrSurfaceOrigin;
425 skia::RefPtr<GrTexture> texture = skia::AdoptRef(grContext->wrapBackendTextu re(backendTextureDescription)); 426 skia::RefPtr<GrTexture> texture = skia::AdoptRef(grContext->wrapBackendTextu re(backendTextureDescription));
426 427
427 // Place the platform texture inside an SkBitmap. 428 // Place the platform texture inside an SkBitmap.
428 SkBitmap source; 429 SkBitmap source;
429 source.setConfig(SkBitmap::kARGB_8888_Config, sourceTexture->size().width(), sourceTexture->size().height()); 430 source.setConfig(SkBitmap::kARGB_8888_Config, sourceTexture->size().width(), sourceTexture->size().height());
430 skia::RefPtr<SkGrPixelRef> pixelRef = skia::AdoptRef(new SkGrPixelRef(textur e.get())); 431 skia::RefPtr<SkGrPixelRef> pixelRef = skia::AdoptRef(new SkGrPixelRef(textur e.get()));
431 source.setPixelRef(pixelRef.get()); 432 source.setPixelRef(pixelRef.get());
432 433
433 // Create a scratch texture for backing store. 434 // Create a scratch texture for backing store.
434 GrTextureDesc desc; 435 GrTextureDesc desc;
435 desc.fFlags = kRenderTarget_GrTextureFlagBit | kNoStencil_GrTextureFlagBit; 436 desc.fFlags = kRenderTarget_GrTextureFlagBit | kNoStencil_GrTextureFlagBit;
436 desc.fSampleCnt = 0; 437 desc.fSampleCnt = 0;
437 desc.fWidth = source.width(); 438 desc.fWidth = source.width();
438 desc.fHeight = source.height(); 439 desc.fHeight = source.height();
439 desc.fConfig = kSkia8888_GrPixelConfig; 440 desc.fConfig = kSkia8888_GrPixelConfig;
441 desc.fOrigin = kTopLeft_GrSurfaceOrigin;
440 GrAutoScratchTexture scratchTexture(grContext, desc, GrContext::kExact_Scrat chTexMatch); 442 GrAutoScratchTexture scratchTexture(grContext, desc, GrContext::kExact_Scrat chTexMatch);
441 skia::RefPtr<GrTexture> backingStore = skia::AdoptRef(scratchTexture.detach( )); 443 skia::RefPtr<GrTexture> backingStore = skia::AdoptRef(scratchTexture.detach( ));
442 444
443 // Create a device and canvas using that backing store. 445 // Create a device and canvas using that backing store.
444 SkGpuDevice device(grContext, backingStore.get()); 446 SkGpuDevice device(grContext, backingStore.get());
445 SkCanvas canvas(&device); 447 SkCanvas canvas(&device);
446 448
447 // Draw the source bitmap through the filter to the canvas. 449 // Draw the source bitmap through the filter to the canvas.
448 SkPaint paint; 450 SkPaint paint;
449 paint.setImageFilter(filter); 451 paint.setImageFilter(filter);
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1811 1813
1812 releaseRenderPassTextures(); 1814 releaseRenderPassTextures();
1813 } 1815 }
1814 1816
1815 bool GLRenderer::isContextLost() 1817 bool GLRenderer::isContextLost()
1816 { 1818 {
1817 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR); 1819 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR);
1818 } 1820 }
1819 1821
1820 } // namespace cc 1822 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | skia/skia_test_expectations.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698