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

Side by Side Diff: Source/core/html/HTMLCanvasElement.cpp

Issue 735623003: WebGL: accelerated texImage2D and texSubImage2D for canvas (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 void HTMLCanvasElement::ensureUnacceleratedImageBuffer() 672 void HTMLCanvasElement::ensureUnacceleratedImageBuffer()
673 { 673 {
674 if ((hasImageBuffer() && !m_imageBuffer->isAccelerated()) || m_didFailToCrea teImageBuffer) 674 if ((hasImageBuffer() && !m_imageBuffer->isAccelerated()) || m_didFailToCrea teImageBuffer)
675 return; 675 return;
676 discardImageBuffer(); 676 discardImageBuffer();
677 OpacityMode opacityMode = !m_context || m_context->hasAlpha() ? NonOpaque : Opaque; 677 OpacityMode opacityMode = !m_context || m_context->hasAlpha() ? NonOpaque : Opaque;
678 m_imageBuffer = ImageBuffer::create(size(), opacityMode); 678 m_imageBuffer = ImageBuffer::create(size(), opacityMode);
679 m_didFailToCreateImageBuffer = !m_imageBuffer; 679 m_didFailToCreateImageBuffer = !m_imageBuffer;
680 } 680 }
681 681
682 Image* HTMLCanvasElement::copiedImage(SourceDrawingBuffer sourceBuffer) const 682 Image* HTMLCanvasElement::copiedImage() const
dshwang 2014/11/27 21:31:10 @junov, now it's fixed, as you mentioned in https:
dshwang 2014/12/08 14:09:24 I drop this fix because ImageBitmap still use copi
683 { 683 {
684 if (!m_copiedImage && buffer()) { 684 if (!m_copiedImage && buffer()) {
685 if (m_context && m_context->is3d()) 685 if (m_context && m_context->is3d())
686 m_context->paintRenderingResultsToCanvas(sourceBuffer); 686 m_context->paintRenderingResultsToCanvas(FrontBuffer);
687 m_copiedImage = buffer()->copyImage(CopyBackingStore, Unscaled); 687 m_copiedImage = buffer()->copyImage(CopyBackingStore, Unscaled);
688 updateExternallyAllocatedMemory(); 688 updateExternallyAllocatedMemory();
689 } 689 }
690 return m_copiedImage.get(); 690 return m_copiedImage.get();
691 } 691 }
692 692
693 void HTMLCanvasElement::discardImageBuffer() 693 void HTMLCanvasElement::discardImageBuffer()
694 { 694 {
695 m_contextStateSaver.clear(); // uses context owned by m_imageBuffer 695 m_contextStateSaver.clear(); // uses context owned by m_imageBuffer
696 m_imageBuffer.clear(); 696 m_imageBuffer.clear();
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 { 774 {
775 return !originClean(); 775 return !originClean();
776 } 776 }
777 777
778 FloatSize HTMLCanvasElement::sourceSize() const 778 FloatSize HTMLCanvasElement::sourceSize() const
779 { 779 {
780 return FloatSize(width(), height()); 780 return FloatSize(width(), height());
781 } 781 }
782 782
783 } 783 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLCanvasElement.h ('k') | Source/core/html/canvas/WebGLRenderingContextBase.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698