LCOV - code coverage report
Current view: top level - gfx/angle/src/common - utilities.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //
       2             : // Copyright (c) 2002-2013 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             : 
       7             : // utilities.h: Conversion functions and other utility routines.
       8             : 
       9             : #ifndef COMMON_UTILITIES_H_
      10             : #define COMMON_UTILITIES_H_
      11             : 
      12             : #include <EGL/egl.h>
      13             : #include <EGL/eglext.h>
      14             : 
      15             : #include "angle_gl.h"
      16             : #include <string>
      17             : #include <math.h>
      18             : 
      19             : #include "common/mathutil.h"
      20             : 
      21             : namespace gl
      22             : {
      23             : 
      24             : int VariableComponentCount(GLenum type);
      25             : GLenum VariableComponentType(GLenum type);
      26             : size_t VariableComponentSize(GLenum type);
      27             : size_t VariableInternalSize(GLenum type);
      28             : size_t VariableExternalSize(GLenum type);
      29             : GLenum VariableBoolVectorType(GLenum type);
      30             : int VariableRowCount(GLenum type);
      31             : int VariableColumnCount(GLenum type);
      32             : bool IsSamplerType(GLenum type);
      33             : GLenum SamplerTypeToTextureType(GLenum samplerType);
      34             : bool IsMatrixType(GLenum type);
      35             : GLenum TransposeMatrixType(GLenum type);
      36             : int VariableRegisterCount(GLenum type);
      37             : int MatrixRegisterCount(GLenum type, bool isRowMajorMatrix);
      38             : int MatrixComponentCount(GLenum type, bool isRowMajorMatrix);
      39             : int VariableSortOrder(GLenum type);
      40             : 
      41             : int AllocateFirstFreeBits(unsigned int *bits, unsigned int allocationSize, unsigned int bitsSize);
      42             : 
      43             : static const GLenum FirstCubeMapTextureTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X;
      44             : static const GLenum LastCubeMapTextureTarget = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z;
      45             : bool IsCubeMapTextureTarget(GLenum target);
      46             : size_t CubeMapTextureTargetToLayerIndex(GLenum target);
      47             : GLenum LayerIndexToCubeMapTextureTarget(size_t index);
      48             : 
      49             : // Parse the base uniform name and array index.  Returns the base name of the uniform. outSubscript is
      50             : // set to GL_INVALID_INDEX if the provided name is not an array or the array index is invalid.
      51             : std::string ParseUniformName(const std::string &name, size_t *outSubscript);
      52             : 
      53             : // Find the range of index values in the provided indices pointer.  Primitive restart indices are
      54             : // only counted in the range if primitive restart is disabled.
      55             : IndexRange ComputeIndexRange(GLenum indexType,
      56             :                              const GLvoid *indices,
      57             :                              size_t count,
      58             :                              bool primitiveRestartEnabled);
      59             : 
      60             : // Get the primitive restart index value for the given index type.
      61             : GLuint GetPrimitiveRestartIndex(GLenum indexType);
      62             : 
      63             : bool IsTriangleMode(GLenum drawMode);
      64             : 
      65             : // [OpenGL ES 3.0.2] Section 2.3.1 page 14
      66             : // Data Conversion For State-Setting Commands
      67             : // Floating-point values are rounded to the nearest integer, instead of truncated, as done by static_cast.
      68           0 : template <typename outT> outT iround(GLfloat value) { return static_cast<outT>(value > 0.0f ? floor(value + 0.5f) : ceil(value - 0.5f)); }
      69           0 : template <typename outT> outT uiround(GLfloat value) { return static_cast<outT>(value + 0.5f); }
      70             : 
      71             : // Helper for converting arbitrary GL types to other GL types used in queries and state setting
      72             : template <typename ParamType>
      73             : GLuint ConvertToGLuint(ParamType param)
      74             : {
      75             :     return static_cast<GLuint>(param);
      76             : }
      77             : template <>
      78             : GLuint ConvertToGLuint(GLfloat param);
      79             : 
      80             : template <typename ParamType>
      81             : GLint ConvertToGLint(ParamType param)
      82             : {
      83             :     return static_cast<GLint>(param);
      84             : }
      85             : template <>
      86             : GLint ConvertToGLint(GLfloat param);
      87             : 
      88             : // Same conversion as uint
      89             : template <typename ParamType>
      90             : GLenum ConvertToGLenum(ParamType param)
      91             : {
      92             :     return static_cast<GLenum>(ConvertToGLuint(param));
      93             : }
      94             : 
      95             : template <typename ParamType>
      96             : GLfloat ConvertToGLfloat(ParamType param)
      97             : {
      98             :     return static_cast<GLfloat>(param);
      99             : }
     100             : 
     101             : template <typename ParamType>
     102             : ParamType ConvertFromGLfloat(GLfloat param)
     103             : {
     104             :     return static_cast<ParamType>(param);
     105             : }
     106             : template <>
     107             : GLint ConvertFromGLfloat(GLfloat param);
     108             : template <>
     109             : GLuint ConvertFromGLfloat(GLfloat param);
     110             : 
     111             : template <typename ParamType>
     112             : ParamType ConvertFromGLenum(GLenum param)
     113             : {
     114             :     return static_cast<ParamType>(param);
     115             : }
     116             : 
     117             : template <typename ParamType>
     118             : ParamType ConvertFromGLuint(GLuint param)
     119             : {
     120             :     return static_cast<ParamType>(param);
     121             : }
     122             : 
     123             : template <typename ParamType>
     124             : ParamType ConvertFromGLint(GLint param)
     125             : {
     126             :     return static_cast<ParamType>(param);
     127             : }
     128             : 
     129             : template <typename ParamType>
     130             : ParamType ConvertFromGLboolean(GLboolean param)
     131             : {
     132             :     return static_cast<ParamType>(param ? GL_TRUE : GL_FALSE);
     133             : }
     134             : 
     135             : template <typename ParamType>
     136             : ParamType ConvertFromGLint64(GLint64 param)
     137             : {
     138             :     return clampCast<ParamType>(param);
     139             : }
     140             : 
     141             : unsigned int ParseAndStripArrayIndex(std::string *name);
     142             : 
     143             : }  // namespace gl
     144             : 
     145             : namespace egl
     146             : {
     147             : static const EGLenum FirstCubeMapTextureTarget = EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR;
     148             : static const EGLenum LastCubeMapTextureTarget = EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR;
     149             : bool IsCubeMapTextureTarget(EGLenum target);
     150             : size_t CubeMapTextureTargetToLayerIndex(EGLenum target);
     151             : EGLenum LayerIndexToCubeMapTextureTarget(size_t index);
     152             : bool IsTextureTarget(EGLenum target);
     153             : bool IsRenderbufferTarget(EGLenum target);
     154             : }
     155             : 
     156             : namespace egl_gl
     157             : {
     158             : GLenum EGLCubeMapTargetToGLCubeMapTarget(EGLenum eglTarget);
     159             : GLenum EGLImageTargetToGLTextureTarget(EGLenum eglTarget);
     160             : GLuint EGLClientBufferToGLObjectHandle(EGLClientBuffer buffer);
     161             : }
     162             : 
     163             : #if !defined(ANGLE_ENABLE_WINDOWS_STORE)
     164             : std::string getTempPath();
     165             : void writeFile(const char* path, const void* data, size_t size);
     166             : #endif
     167             : 
     168             : #if defined (ANGLE_PLATFORM_WINDOWS)
     169             : void ScheduleYield();
     170             : #endif
     171             : 
     172             : #endif  // COMMON_UTILITIES_H_

Generated by: LCOV version 1.13