10 #ifndef LIBANGLE_RENDERER_D3D_D3D9_VERTEXCONVERSION_H_ 11 #define LIBANGLE_RENDERER_D3D_D3D9_VERTEXCONVERSION_H_ 38 template <
class FromT,
class ToT>
47 return static_cast<ToT
>(
x);
60 return static_cast<T>(
x);
73 typedef std::numeric_limits<T> NL;
74 float f =
static_cast<float>(
x);
90 template <
class FromType, std::
size_t ScaleBits>
99 const float divisor = 1.0f /
static_cast<float>(
static_cast<FromType
>(1) << ScaleBits);
100 return static_cast<float>(
x) * divisor;
109 template <std::
size_t N>
117 template <std::
size_t N>
124 template <std::
size_t N>
135 static T zero() {
return static_cast<T>(0); }
136 static T one() {
return static_cast<T>(1); }
143 static T zero() {
return static_cast<T>(0); }
161 static const bool identity = (WidenRule::initialWidth == WidenRule::finalWidth) && Converter::identity;
166 OutputType *
out =
reinterpret_cast<OutputType*
>(
output);
170 const InputType *ein =
reinterpret_cast<const InputType*
>(input +
i *
stride);
172 copyComponent(out, ein, 0, static_cast<OutputType>(DefaultValueRule::zero()));
173 copyComponent(out, ein, 1, static_cast<OutputType>(DefaultValueRule::zero()));
174 copyComponent(out, ein, 2, static_cast<OutputType>(DefaultValueRule::zero()));
175 copyComponent(out, ein, 3, static_cast<OutputType>(DefaultValueRule::one()));
177 out += WidenRule::finalWidth;
182 static void copyComponent(OutputType *
out,
const InputType *in,
std::size_t elementindex, OutputType defaultvalue)
184 if (WidenRule::finalWidth > elementindex)
186 if (WidenRule::initialWidth > elementindex)
192 out[elementindex] = defaultvalue;
200 #endif // LIBANGLE_RENDERER_D3D_D3D9_VERTEXCONVERSION_H_ static const bool identity
Definition: vertexconversion.h:28
static T convert(T x)
Definition: vertexconversion.h:32
static T zero()
Definition: vertexconversion.h:143
Definition: vertexconversion.h:156
static T zero()
Definition: vertexconversion.h:135
static T one()
Definition: vertexconversion.h:136
static float convert(T x)
Definition: vertexconversion.h:71
Definition: vertexconversion.h:141
Definition: vertexconversion.h:39
ToT OutputType
Definition: vertexconversion.h:43
GLuint divisor
Definition: gl2ext.h:1105
Definition: vertexconversion.h:118
std::integral_constant< std::size_t, V > size_t
Definition: Brigand.h:447
static T one()
Definition: vertexconversion.h:144
T OutputType
Definition: vertexconversion.h:30
EGLStreamKHR EGLint n
Definition: eglext.h:984
float OutputType
Definition: vertexconversion.h:69
static T convert(T x)
Definition: vertexconversion.h:58
Definition: mathutil.h:804
TestSubObjConstructor T
Definition: TestTypedefs.idl:84
EGLSurface EGLint x
Definition: eglext.h:950
int int * out
Definition: gcc-loops.cpp:206
unsigned char uint8_t
Definition: ptypes.h:89
constexpr U convert(U v)
Definition: Optional.h:278
#define N
Definition: gcc-loops.cpp:14
GLfloat f
Definition: gl2.h:417
static ToT convert(FromT x)
Definition: vertexconversion.h:45
Converter::OutputType OutputType
Definition: vertexconversion.h:158
float OutputType
Definition: vertexconversion.h:95
double max
Definition: DeviceProximityEvent.idl:32
for i
Definition: complexityMeasures.m:24
T OutputType
Definition: vertexconversion.h:56
Definition: vertexconversion.h:125
string input
Definition: tokenizer_unittest.cc:198
Definition: vertexconversion.h:91
static void convertArray(const uint8_t *input, size_t stride, size_t n, uint8_t *output)
Definition: vertexconversion.h:164
static float convert(FromType x)
Definition: vertexconversion.h:97
Definition: vertexconversion.h:26
Definition: vertexconversion.h:133
EGLImageKHR EGLint EGLint EGLint * stride
Definition: eglext.h:851
InT InputType
Definition: vertexconversion.h:159
Definition: vertexconversion.h:65
Definition: vertexconversion.h:110