| OLD | NEW |
| 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 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 BackBuffer)) { | 730 BackBuffer)) { |
| 731 // copyRenderingResultsFromDrawingBuffer is expected to always succeed | 731 // copyRenderingResultsFromDrawingBuffer is expected to always succeed |
| 732 // because we've explicitly created an Accelerated surface and have already | 732 // because we've explicitly created an Accelerated surface and have already |
| 733 // validated it. | 733 // validated it. |
| 734 NOTREACHED(); | 734 NOTREACHED(); |
| 735 return nullptr; | 735 return nullptr; |
| 736 } | 736 } |
| 737 return buffer->newImageSnapshot(hint, reason); | 737 return buffer->newImageSnapshot(hint, reason); |
| 738 } | 738 } |
| 739 | 739 |
| 740 ImageData* WebGLRenderingContextBase::toImageData(SnapshotReason reason) const { |
| 741 // TODO: Furnish toImageData in webgl renderingcontext for jpeg and webp |
| 742 // images. See crbug.com/657531. |
| 743 ImageData* imageData = nullptr; |
| 744 if (this->drawingBuffer()) { |
| 745 sk_sp<SkImage> snapshot = this->drawingBuffer() |
| 746 ->transferToStaticBitmapImage() |
| 747 ->imageForCurrentFrame(); |
| 748 if (snapshot) { |
| 749 imageData = ImageData::create(this->getOffscreenCanvas()->size()); |
| 750 SkImageInfo imageInfo = SkImageInfo::Make( |
| 751 this->drawingBufferWidth(), this->drawingBufferHeight(), |
| 752 kRGBA_8888_SkColorType, kUnpremul_SkAlphaType); |
| 753 snapshot->readPixels(imageInfo, imageData->data()->data(), |
| 754 imageInfo.minRowBytes(), 0, 0); |
| 755 } |
| 756 } |
| 757 return imageData; |
| 758 } |
| 759 |
| 740 namespace { | 760 namespace { |
| 741 | 761 |
| 742 // Exposed by GL_ANGLE_depth_texture | 762 // Exposed by GL_ANGLE_depth_texture |
| 743 static const GLenum kSupportedInternalFormatsOESDepthTex[] = { | 763 static const GLenum kSupportedInternalFormatsOESDepthTex[] = { |
| 744 GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, | 764 GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, |
| 745 }; | 765 }; |
| 746 | 766 |
| 747 // Exposed by GL_EXT_sRGB | 767 // Exposed by GL_EXT_sRGB |
| 748 static const GLenum kSupportedInternalFormatsEXTsRGB[] = { | 768 static const GLenum kSupportedInternalFormatsEXTsRGB[] = { |
| 749 GL_SRGB, GL_SRGB_ALPHA_EXT, | 769 GL_SRGB, GL_SRGB_ALPHA_EXT, |
| (...skipping 6795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7545 | 7565 |
| 7546 void WebGLRenderingContextBase::getHTMLOrOffscreenCanvas( | 7566 void WebGLRenderingContextBase::getHTMLOrOffscreenCanvas( |
| 7547 HTMLCanvasElementOrOffscreenCanvas& result) const { | 7567 HTMLCanvasElementOrOffscreenCanvas& result) const { |
| 7548 if (canvas()) | 7568 if (canvas()) |
| 7549 result.setHTMLCanvasElement(canvas()); | 7569 result.setHTMLCanvasElement(canvas()); |
| 7550 else | 7570 else |
| 7551 result.setOffscreenCanvas(getOffscreenCanvas()); | 7571 result.setOffscreenCanvas(getOffscreenCanvas()); |
| 7552 } | 7572 } |
| 7553 | 7573 |
| 7554 } // namespace blink | 7574 } // namespace blink |
| OLD | NEW |