• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 LIBGLESV2_UTILITIES_H
10 #define LIBGLESV2_UTILITIES_H
11 
12 #define GL_APICALL
13 #include <GLES2/gl2.h>
14 #include <GLES2/gl2ext.h>
15 
16 #include <string>
17 
18 namespace gl
19 {
20 
21 struct Color;
22 
23 int UniformComponentCount(GLenum type);
24 GLenum UniformComponentType(GLenum type);
25 size_t UniformInternalSize(GLenum type);
26 size_t UniformExternalSize(GLenum type);
27 int VariableRowCount(GLenum type);
28 int VariableColumnCount(GLenum type);
29 
30 int AllocateFirstFreeBits(unsigned int *bits, unsigned int allocationSize, unsigned int bitsSize);
31 
32 void MakeValidSize(bool isImage, bool isCompressed, GLsizei *requestWidth, GLsizei *requestHeight, int *levelOffset);
33 int ComputePixelSize(GLint internalformat);
34 GLsizei ComputePitch(GLsizei width, GLint internalformat, GLint alignment);
35 GLsizei ComputeCompressedPitch(GLsizei width, GLenum format);
36 GLsizei ComputeCompressedSize(GLsizei width, GLsizei height, GLenum format);
37 GLsizei ComputeTypeSize(GLenum type);
38 bool IsCompressed(GLenum format);
39 bool IsDepthTexture(GLenum format);
40 bool IsStencilTexture(GLenum format);
41 bool IsCubemapTextureTarget(GLenum target);
42 bool IsInternalTextureTarget(GLenum target);
43 GLint ConvertSizedInternalFormat(GLenum format, GLenum type);
44 GLenum ExtractFormat(GLenum internalformat);
45 GLenum ExtractType(GLenum internalformat);
46 
47 bool IsColorRenderable(GLenum internalformat);
48 bool IsDepthRenderable(GLenum internalformat);
49 bool IsStencilRenderable(GLenum internalformat);
50 
51 bool IsFloat32Format(GLint internalformat);
52 bool IsFloat16Format(GLint internalformat);
53 
54 GLuint GetAlphaSize(GLenum colorFormat);
55 GLuint GetRedSize(GLenum colorFormat);
56 GLuint GetGreenSize(GLenum colorFormat);
57 GLuint GetBlueSize(GLenum colorFormat);
58 GLuint GetDepthSize(GLenum depthFormat);
59 GLuint GetStencilSize(GLenum stencilFormat);
60 bool IsTriangleMode(GLenum drawMode);
61 
62 }
63 
64 std::string getTempPath();
65 void writeFile(const char* path, const void* data, size_t size);
66 
67 #endif  // LIBGLESV2_UTILITIES_H
68