#ifndef LIBANGLE_QUERY_CONVERSIONS_H_
#define LIBANGLE_QUERY_CONVERSIONS_H_
#include "angle_gl.h"
#include "common/angleutils.h"
namespace gl
{
class Context;
template <typename GLType>
struct GLTypeToGLenum
{ … };
template <>
struct GLTypeToGLenum<GLint>
{ … };
template <>
struct GLTypeToGLenum<GLuint>
{ … };
template <>
struct GLTypeToGLenum<GLboolean>
{ … };
template <>
struct GLTypeToGLenum<GLint64>
{ … };
template <>
struct GLTypeToGLenum<GLuint64>
{ … };
template <>
struct GLTypeToGLenum<GLfloat>
{ … };
GLint CastMaskValue(GLuint value);
template <typename QueryT, typename InternalT>
QueryT CastFromGLintStateValue(GLenum pname, InternalT value);
template <typename QueryT, typename NativeT>
QueryT CastFromStateValue(GLenum pname, NativeT value);
template <typename NativeT, typename QueryT>
NativeT CastQueryValueTo(GLenum pname, QueryT value);
template <typename ParamType>
GLenum ConvertToGLenum(GLenum pname, ParamType param)
{ … }
template <typename ParamType>
GLenum ConvertToGLenum(ParamType param)
{ … }
template <typename OutType>
OutType ConvertGLenum(GLenum param)
{ … }
template <typename InType, typename OutType>
void ConvertGLenumValue(InType param, OutType *out)
{ … }
template <typename PackedEnumType, typename OutType>
void ConvertPackedEnum(PackedEnumType param, OutType *out)
{ … }
template <typename ParamType>
GLint ConvertToGLint(ParamType param)
{ … }
template <typename ParamType>
GLfloat ConvertToGLfloat(ParamType param)
{ … }
template <typename ParamType>
bool ConvertToBool(ParamType param)
{ … }
template <typename ParamType>
GLboolean ConvertToGLBoolean(ParamType param)
{ … }
template <typename QueryT>
void CastStateValues(const Context *context,
GLenum nativeType,
GLenum pname,
unsigned int numParams,
QueryT *outParams);
template <typename QueryT>
void CastIndexedStateValues(Context *context,
GLenum nativeType,
GLenum pname,
GLuint index,
unsigned int numParams,
QueryT *outParams);
}
#endif