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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h

Issue 1497683002: Make platform/graphics to use USING_FAST_MALLOC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef WebGLImageConversion_h 5 #ifndef WebGLImageConversion_h
6 #define WebGLImageConversion_h 6 #define WebGLImageConversion_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/graphics/Image.h" 9 #include "platform/graphics/Image.h"
10 #include "platform/graphics/skia/ImagePixelLocker.h" 10 #include "platform/graphics/skia/ImagePixelLocker.h"
11 #include "platform/heap/Heap.h" 11 #include "platform/heap/Heap.h"
12 #include "third_party/khronos/GLES2/gl2.h" 12 #include "third_party/khronos/GLES2/gl2.h"
13 #include "third_party/khronos/GLES2/gl2ext.h" 13 #include "third_party/khronos/GLES2/gl2ext.h"
14 #include "third_party/khronos/GLES3/gl3.h" 14 #include "third_party/khronos/GLES3/gl3.h"
15 #include "wtf/Allocator.h"
15 #include "wtf/Optional.h" 16 #include "wtf/Optional.h"
16 #include "wtf/RefPtr.h" 17 #include "wtf/RefPtr.h"
17 18
18 namespace blink { 19 namespace blink {
19 class Image; 20 class Image;
20 class IntSize; 21 class IntSize;
21 22
22 // Helper functions for texture uploading and pixel readback. 23 // Helper functions for texture uploading and pixel readback.
23 class PLATFORM_EXPORT WebGLImageConversion { 24 class PLATFORM_EXPORT WebGLImageConversion final {
25 STATIC_ONLY(WebGLImageConversion);
24 public: 26 public:
25 // Attempt to enumerate all possible native image formats to 27 // Attempt to enumerate all possible native image formats to
26 // reduce the amount of temporary allocations during texture 28 // reduce the amount of temporary allocations during texture
27 // uploading. This enum must be public because it is accessed 29 // uploading. This enum must be public because it is accessed
28 // by non-member functions. 30 // by non-member functions.
29 // "_S" postfix indicates signed type. 31 // "_S" postfix indicates signed type.
30 enum DataFormat { 32 enum DataFormat {
31 DataFormatRGBA8 = 0, 33 DataFormatRGBA8 = 0,
32 DataFormatRGBA8_S, 34 DataFormatRGBA8_S,
33 DataFormatRGBA16, 35 DataFormatRGBA16,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 AlphaDoUnmultiply = 2 108 AlphaDoUnmultiply = 2
107 }; 109 };
108 110
109 enum ImageHtmlDomSource { 111 enum ImageHtmlDomSource {
110 HtmlDomImage = 0, 112 HtmlDomImage = 0,
111 HtmlDomCanvas = 1, 113 HtmlDomCanvas = 1,
112 HtmlDomVideo = 2, 114 HtmlDomVideo = 2,
113 HtmlDomNone = 3 115 HtmlDomNone = 3
114 }; 116 };
115 117
116 class PLATFORM_EXPORT ImageExtractor { 118 class PLATFORM_EXPORT ImageExtractor final {
117 STACK_ALLOCATED(); 119 STACK_ALLOCATED();
118 public: 120 public:
119 ImageExtractor(Image*, ImageHtmlDomSource, bool premultiplyAlpha, bool i gnoreGammaAndColorProfile); 121 ImageExtractor(Image*, ImageHtmlDomSource, bool premultiplyAlpha, bool i gnoreGammaAndColorProfile);
120 122
121 const void* imagePixelData() { return m_imagePixelLocker ? m_imagePixelL ocker->pixels() : nullptr; } 123 const void* imagePixelData() { return m_imagePixelLocker ? m_imagePixelL ocker->pixels() : nullptr; }
122 unsigned imageWidth() { return m_imageWidth; } 124 unsigned imageWidth() { return m_imageWidth; }
123 unsigned imageHeight() { return m_imageHeight; } 125 unsigned imageHeight() { return m_imageHeight; }
124 DataFormat imageSourceFormat() { return m_imageSourceFormat; } 126 DataFormat imageSourceFormat() { return m_imageSourceFormat; }
125 AlphaOp imageAlphaOp() { return m_alphaOp; } 127 AlphaOp imageAlphaOp() { return m_alphaOp; }
126 unsigned imageSourceUnpackAlignment() { return m_imageSourceUnpackAlignm ent; } 128 unsigned imageSourceUnpackAlignment() { return m_imageSourceUnpackAlignm ent; }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // A sourceUnpackAlignment of zero indicates that the source 193 // A sourceUnpackAlignment of zero indicates that the source
192 // data is tightly packed. Non-zero values may take a slow path. 194 // data is tightly packed. Non-zero values may take a slow path.
193 // Destination data will have no gaps between rows. 195 // Destination data will have no gaps between rows.
194 // Implemented in GraphicsContext3DImagePacking.cpp 196 // Implemented in GraphicsContext3DImagePacking.cpp
195 static bool packPixels(const uint8_t* sourceData, DataFormat sourceDataForma t, unsigned width, unsigned height, unsigned sourceUnpackAlignment, unsigned des tinationFormat, unsigned destinationType, AlphaOp, void* destinationData, bool f lipY); 197 static bool packPixels(const uint8_t* sourceData, DataFormat sourceDataForma t, unsigned width, unsigned height, unsigned sourceUnpackAlignment, unsigned des tinationFormat, unsigned destinationType, AlphaOp, void* destinationData, bool f lipY);
196 }; 198 };
197 199
198 } // namespace blink 200 } // namespace blink
199 201
200 #endif // WebGLImageConversion_h 202 #endif // WebGLImageConversion_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698