OpenGL ES SDK for Android ARM Developer Center
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Texture.h
Go to the documentation of this file.
1 /* Copyright (c) 2012-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #ifndef TEXTURE_H
22 #define TEXTURE_H
23 
24 #include "ETCHeader.h"
25 
26 #if GLES_VERSION == 2
27 #include <GLES2/gl2.h>
28 #elif GLES_VERSION == 3
29 #include <GLES3/gl3.h>
30 #else
31 #error "GLES_VERSION must be defined as either 2 or 3"
32 #endif
33 
34 namespace MaliSDK
35 {
39  class Texture
40  {
41  private:
49  static void getCompressedTextureFormats(GLint **textureFormats, int* numberOfTextureFormats);
50  public:
58  static bool isETCSupported(bool verbose = false);
59 
67  static void createTexture(unsigned int width, unsigned int height, GLvoid **textureData);
68 
77  static void createTexture(unsigned int width, unsigned int height, unsigned int red, GLvoid **textureData);
78 
87  static void createTexture(unsigned int width, unsigned int height, short red, short **textureData);
88 
94  static void deleteTextureData(GLvoid **textureData);
95 
102  static void loadData(const char *filename, unsigned char **textureData);
103 
111  static void loadPKMData(const char *filename, ETCHeader* etcHeader, unsigned char **textureData);
112 
125  static void loadCompressedMipmaps(const char *filenameBase, const char *filenameSuffix, GLuint *textureID);
126 
135  static void reversePixelLine(float* destination, const float* source, int lineWidth);
136  };
137 }
138 #endif /* TEXTURE_H */
static void loadPKMData(const char *filename, ETCHeader *etcHeader, unsigned char **textureData)
Load header and texture data from a pkm file into memory.
Definition: Texture.cpp:199
GLuint textureID
static void createTexture(unsigned int width, unsigned int height, GLvoid **textureData)
Create a texture using random data.
Definition: Texture.cpp:103
Class to extract information from the ETC headers of compressed textures.
Definition: ETCHeader.h:38
const GLenum textureFormats[]
GLint GLsizei GLsizei height
Definition: gl2ext.h:179
static void getCompressedTextureFormats(GLint **textureFormats, int *numberOfTextureFormats)
Uses glGetIntegerv to get the number of compressed texture formats and the formats themselves...
Definition: Texture.cpp:38
static void deleteTextureData(GLvoid **textureData)
Deletes previously created texture.
Definition: Texture.cpp:162
GLsizei GLsizei GLchar * source
Definition: gl2ext.h:877
static void loadCompressedMipmaps(const char *filenameBase, const char *filenameSuffix, GLuint *textureID)
Load compressed mipmaps into memory.
Definition: Texture.cpp:232
static void reversePixelLine(float *destination, const float *source, int lineWidth)
Copies float pixel data of one line of the image from source to destination in the reverse direction...
Definition: Texture.cpp:318
unsigned char * textureData
Definition: ThreadSync.cpp:109
Functions for working with textures.
Definition: Texture.h:39
static void loadData(const char *filename, unsigned char **textureData)
Load texture data from a file into memory.
Definition: Texture.cpp:167
GLint GLsizei width
Definition: gl2ext.h:179
static bool isETCSupported(bool verbose=false)
Reports whether or not ETC (Ericsson Texture Compression) is supported.
Definition: Texture.cpp:46
typedef GLuint(GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC)(GLuint count