webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
renderer_utils.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // renderer_utils:
7 // Helper methods pertaining to most or all back-ends.
8 //
9 
10 #ifndef LIBANGLE_RENDERER_RENDERER_UTILS_H_
11 #define LIBANGLE_RENDERER_RENDERER_UTILS_H_
12 
13 #include <cstdint>
14 
15 #include <map>
16 
17 #include "libANGLE/angletypes.h"
18 
19 namespace angle
20 {
21 struct Format;
22 }
23 
24 namespace gl
25 {
26 struct FormatType;
27 struct InternalFormat;
28 }
29 
30 namespace rx
31 {
32 
33 using MipGenerationFunction = void (*)(size_t sourceWidth,
34  size_t sourceHeight,
35  size_t sourceDepth,
36  const uint8_t *sourceData,
37  size_t sourceRowPitch,
38  size_t sourceDepthPitch,
39  uint8_t *destData,
40  size_t destRowPitch,
41  size_t destDepthPitch);
42 
46 
47 typedef std::map<gl::FormatType, ColorCopyFunction> FastCopyFunctionMap;
48 
50 {
52  PackPixelsParams(const gl::Rectangle &area,
53  GLenum format,
54  GLenum type,
55  GLuint outputPitch,
56  const gl::PixelPackState &pack,
58 
66 };
67 
69  const angle::Format &sourceFormat,
70  int inputPitch,
71  const uint8_t *source,
72  uint8_t *destination);
73 
75 ColorCopyFunction GetFastCopyFunction(const FastCopyFunctionMap &fastCopyFunctions,
76  const gl::FormatType &formatType);
77 
78 using LoadImageFunction = void (*)(size_t width,
79  size_t height,
80  size_t depth,
81  const uint8_t *input,
82  size_t inputRowPitch,
83  size_t inputDepthPitch,
84  uint8_t *output,
85  size_t outputRowPitch,
86  size_t outputDepthPitch);
87 
89 {
90  LoadImageFunctionInfo() : loadFunction(nullptr), requiresConversion(false) {}
91  LoadImageFunctionInfo(LoadImageFunction loadFunction, bool requiresConversion)
92  : loadFunction(loadFunction), requiresConversion(requiresConversion)
93  {
94  }
95 
98 };
99 
101 
102 } // namespace rx
103 
104 #endif // LIBANGLE_RENDERER_RENDERER_UTILS_H_
Definition: Format.h:21
GLsizei GLsizei GLchar * source
Definition: gl2.h:451
Definition: renderer_utils.h:49
EGLSurface EGLint EGLint EGLint EGLint height
Definition: eglext.h:950
GLint GLint GLint GLsizei GLsizei GLenum format
Definition: gl2.h:403
EGLSurface EGLint EGLint EGLint width
Definition: eglext.h:950
gl::PixelPackState pack
Definition: renderer_utils.h:64
ptrdiff_t offset
Definition: renderer_utils.h:65
Definition: Buffer.h:28
dest
Definition: upload.py:394
unsigned int GLenum
Definition: gl2.h:69
Definition: angletypes.h:222
LoadImageFunctionInfo()
Definition: renderer_utils.h:90
LoadImageFunction loadFunction
Definition: renderer_utils.h:96
uint32_t Format
Definition: wav_header.cc:51
void(* ColorWriteFunction)(const uint8_t *source, uint8_t *dest)
Definition: renderer_utils.h:44
#define output
Definition: wire_format_lite.h:418
ColorWriteFunction GetColorWriteFunction(const gl::FormatType &formatType)
Definition: renderer_utils.cpp:253
void
Definition: AVFoundationCFSoftLinking.h:81
LoadImageFunctionInfo(*)(GLenum) LoadFunctionMap
Definition: renderer_utils.h:100
EGLStreamKHR EGLint EGLint offset
Definition: eglext.h:984
Definition: mathutil.h:804
Definition: renderer_utils.h:88
Definition: Platform.h:33
GLuint outputPitch
Definition: renderer_utils.h:62
unsigned char uint8_t
Definition: ptypes.h:89
void PackPixels(const PackPixelsParams &params, const angle::Format &sourceFormat, int inputPitchIn, const uint8_t *sourceIn, uint8_t *destWithoutOffset)
Definition: renderer_utils.cpp:173
unsigned int GLuint
Definition: gl2.h:70
GLenum type
Definition: renderer_utils.h:61
void(*)(size_t sourceWidth, size_t sourceHeight, size_t sourceDepth, const uint8_t *sourceData, size_t sourceRowPitch, size_t sourceDepthPitch, uint8_t *destData, size_t destRowPitch, size_t destDepthPitch) MipGenerationFunction
Definition: renderer_utils.h:41
GLint GLenum GLsizei GLsizei GLsizei depth
Definition: gl2ext.h:572
bool requiresConversion
Definition: renderer_utils.h:97
Definition: formatutils.h:23
EGLenum type
Definition: eglext.h:63
void(* ColorReadFunction)(const uint8_t *source, uint8_t *dest)
Definition: renderer_utils.h:43
gl::Rectangle area
Definition: renderer_utils.h:59
void(*)(size_t width, size_t height, size_t depth, const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch, uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch) LoadImageFunction
Definition: renderer_utils.h:86
std::integral_constant< std::ptrdiff_t, V > ptrdiff_t
Definition: Brigand.h:449
GLenum format
Definition: renderer_utils.h:60
#define false
Definition: float-mm.c:5
pack
Definition: complexityMeasures.m:2
std::map< gl::FormatType, ColorCopyFunction > FastCopyFunctionMap
Definition: renderer_utils.h:47
void(* ColorCopyFunction)(const uint8_t *source, uint8_t *dest)
Definition: renderer_utils.h:45
ColorCopyFunction GetFastCopyFunction(const FastCopyFunctionMap &fastCopyFunctions, const gl::FormatType &formatType)
Definition: renderer_utils.cpp:271
string input
Definition: tokenizer_unittest.cc:198
LoadImageFunctionInfo(LoadImageFunction loadFunction, bool requiresConversion)
Definition: renderer_utils.h:91
gl::Buffer * packBuffer
Definition: renderer_utils.h:63
GLenum GLint * params
Definition: gl2.h:440
Definition: entry_points_gles_2_0.h:15
Definition: angletypes.h:48