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

Side by Side Diff: Source/core/html/canvas/WebGLRenderingContextBase.cpp

Issue 309933004: Fix imageSourceURL() for WebGL elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 , m_generatedImageCache(4) 511 , m_generatedImageCache(4)
512 , m_contextLost(false) 512 , m_contextLost(false)
513 , m_contextLostMode(SyntheticLostContext) 513 , m_contextLostMode(SyntheticLostContext)
514 , m_requestedAttributes(requestedAttributes->clone()) 514 , m_requestedAttributes(requestedAttributes->clone())
515 , m_synthesizedErrorsToConsole(true) 515 , m_synthesizedErrorsToConsole(true)
516 , m_numGLErrorsToConsoleAllowed(maxGLErrorsAllowedToConsole) 516 , m_numGLErrorsToConsoleAllowed(maxGLErrorsAllowedToConsole)
517 , m_multisamplingAllowed(false) 517 , m_multisamplingAllowed(false)
518 , m_multisamplingObserverRegistered(false) 518 , m_multisamplingObserverRegistered(false)
519 , m_onePlusMaxEnabledAttribIndex(0) 519 , m_onePlusMaxEnabledAttribIndex(0)
520 , m_onePlusMaxNonDefaultTextureUnit(0) 520 , m_onePlusMaxNonDefaultTextureUnit(0)
521 , m_savingImage(false)
521 { 522 {
522 ASSERT(context); 523 ASSERT(context);
523 524
524 m_contextGroup = WebGLContextGroup::create(); 525 m_contextGroup = WebGLContextGroup::create();
525 m_contextGroup->addContext(this); 526 m_contextGroup->addContext(this);
526 527
527 m_maxViewportDims[0] = m_maxViewportDims[1] = 0; 528 m_maxViewportDims[0] = m_maxViewportDims[1] = 0;
528 context->getIntegerv(GL_MAX_VIEWPORT_DIMS, m_maxViewportDims); 529 context->getIntegerv(GL_MAX_VIEWPORT_DIMS, m_maxViewportDims);
529 530
530 m_drawingBuffer = createDrawingBuffer(context); 531 m_drawingBuffer = createDrawingBuffer(context);
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 canvas()->clearPresentationCopy(); 835 canvas()->clearPresentationCopy();
835 836
836 // Until the canvas is written to by the application, the clear that 837 // Until the canvas is written to by the application, the clear that
837 // happened after it was composited should be ignored by the compositor. 838 // happened after it was composited should be ignored by the compositor.
838 if (m_drawingBuffer->layerComposited() && !m_requestedAttributes->preserveDr awingBuffer()) { 839 if (m_drawingBuffer->layerComposited() && !m_requestedAttributes->preserveDr awingBuffer()) {
839 m_drawingBuffer->paintCompositedResultsToCanvas(canvas()->buffer()); 840 m_drawingBuffer->paintCompositedResultsToCanvas(canvas()->buffer());
840 841
841 canvas()->makePresentationCopy(); 842 canvas()->makePresentationCopy();
842 } else 843 } else
843 canvas()->clearPresentationCopy(); 844 canvas()->clearPresentationCopy();
845
844 clearIfComposited(); 846 clearIfComposited();
845 847
846 if (!m_markedCanvasDirty && !m_layerCleared) 848 if (!m_markedCanvasDirty && !m_layerCleared)
847 return; 849 return;
848 850
849 canvas()->clearCopiedImage(); 851 canvas()->clearCopiedImage();
850 m_markedCanvasDirty = false; 852 m_markedCanvasDirty = false;
851 853
852 ScopedTexture2DRestorer restorer(this); 854 ScopedTexture2DRestorer restorer(this);
853 855
854 m_drawingBuffer->commit(); 856 m_drawingBuffer->commit();
855 if (!(canvas()->buffer())->copyRenderingResultsFromDrawingBuffer(m_drawingBu ffer.get())) { 857 if (!(canvas()->buffer())->copyRenderingResultsFromDrawingBuffer(m_drawingBu ffer.get(), m_savingImage)) {
856 canvas()->ensureUnacceleratedImageBuffer(); 858 canvas()->ensureUnacceleratedImageBuffer();
857 if (canvas()->hasImageBuffer()) 859 if (canvas()->hasImageBuffer())
858 m_drawingBuffer->paintRenderingResultsToCanvas(canvas()->buffer()); 860 m_drawingBuffer->paintRenderingResultsToCanvas(canvas()->buffer());
859 } 861 }
860 862
861 if (m_framebufferBinding) 863 if (m_framebufferBinding)
862 webContext()->bindFramebuffer(GL_FRAMEBUFFER, objectOrZero(m_framebuffer Binding.get())); 864 webContext()->bindFramebuffer(GL_FRAMEBUFFER, objectOrZero(m_framebuffer Binding.get()));
863 else 865 else
864 m_drawingBuffer->bind(); 866 m_drawingBuffer->bind();
865 } 867 }
(...skipping 4819 matching lines...) Expand 10 before | Expand all | Expand 10 after
5685 if (m_textureUnits[i].m_texture2DBinding 5687 if (m_textureUnits[i].m_texture2DBinding
5686 || m_textureUnits[i].m_textureCubeMapBinding) { 5688 || m_textureUnits[i].m_textureCubeMapBinding) {
5687 m_onePlusMaxNonDefaultTextureUnit = i + 1; 5689 m_onePlusMaxNonDefaultTextureUnit = i + 1;
5688 return; 5690 return;
5689 } 5691 }
5690 } 5692 }
5691 m_onePlusMaxNonDefaultTextureUnit = 0; 5693 m_onePlusMaxNonDefaultTextureUnit = 0;
5692 } 5694 }
5693 5695
5694 } // namespace WebCore 5696 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/canvas/WebGLRenderingContextBase.h ('k') | Source/platform/graphics/ImageBuffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698