Merge "Support GL_(NUM_)COMPRESSED_TEXTURE_FORMATS get."
This commit is contained in:
@@ -658,15 +658,23 @@ GL_API void GL_APIENTRY glGenTextures( GLsizei n, GLuint *textures) {
|
|||||||
|
|
||||||
GL_API void GL_APIENTRY glGetBooleanv( GLenum pname, GLboolean *params) {
|
GL_API void GL_APIENTRY glGetBooleanv( GLenum pname, GLboolean *params) {
|
||||||
GET_CTX()
|
GET_CTX()
|
||||||
|
|
||||||
|
GLint i;
|
||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
||||||
GLint i;
|
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
||||||
glGetIntegerv(pname, &i);
|
glGetIntegerv(pname, &i);
|
||||||
*params = (i != 0) ? GL_TRUE : GL_FALSE;
|
*params = (i != 0) ? GL_TRUE : GL_FALSE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
||||||
|
*params = (i != 0) ? GL_TRUE : GL_FALSE;
|
||||||
|
break;
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
{
|
{
|
||||||
GLboolean state_s = GL_FALSE;
|
GLboolean state_s = GL_FALSE;
|
||||||
@@ -725,17 +733,33 @@ GL_API void GL_APIENTRY glGetFixedv( GLenum pname, GLfixed *params) {
|
|||||||
|
|
||||||
size_t nParams = glParamSize(pname);
|
size_t nParams = glParamSize(pname);
|
||||||
GLfloat fParams[16];
|
GLfloat fParams[16];
|
||||||
|
GLint i;
|
||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
||||||
GLint i;
|
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
||||||
glGetIntegerv(pname, &i);
|
glGetIntegerv(pname, &i);
|
||||||
*params = I2X(i);
|
*params = I2X(i);
|
||||||
nParams = 0;
|
nParams = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
||||||
|
if(i > 0)
|
||||||
|
{
|
||||||
|
GLint* iParams = new GLint[i];
|
||||||
|
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, iParams);
|
||||||
|
while(i >= 0)
|
||||||
|
{
|
||||||
|
params[i] = I2X(iParams[i]);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
delete [] iParams;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,&fParams[0]);
|
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,&fParams[0]);
|
||||||
break;
|
break;
|
||||||
@@ -754,15 +778,33 @@ GL_API void GL_APIENTRY glGetFixedv( GLenum pname, GLfixed *params) {
|
|||||||
|
|
||||||
GL_API void GL_APIENTRY glGetFloatv( GLenum pname, GLfloat *params) {
|
GL_API void GL_APIENTRY glGetFloatv( GLenum pname, GLfloat *params) {
|
||||||
GET_CTX()
|
GET_CTX()
|
||||||
|
|
||||||
|
GLint i;
|
||||||
|
|
||||||
switch(pname)
|
switch(pname)
|
||||||
{
|
{
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
|
||||||
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
|
||||||
GLint i;
|
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
||||||
glGetIntegerv(pname, &i);
|
glGetIntegerv(pname, &i);
|
||||||
*params = (GLfloat)i;
|
*params = (GLfloat)i;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &i);
|
||||||
|
if(i > 0)
|
||||||
|
{
|
||||||
|
GLint* iParams = new GLint[i];
|
||||||
|
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, iParams);
|
||||||
|
while(i >= 0)
|
||||||
|
{
|
||||||
|
params[i] = (GLfloat)iParams[i];
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
delete [] iParams;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case GL_TEXTURE_GEN_STR_OES:
|
case GL_TEXTURE_GEN_STR_OES:
|
||||||
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,¶ms[0]);
|
ctx->dispatcher().glGetFloatv(GL_TEXTURE_GEN_S,¶ms[0]);
|
||||||
break;
|
break;
|
||||||
@@ -788,6 +830,14 @@ GL_API void GL_APIENTRY glGetIntegerv( GLenum pname, GLint *params) {
|
|||||||
ctx->dispatcher().glGetIntegerv(GL_TEXTURE_GEN_S,¶ms[0]);
|
ctx->dispatcher().glGetIntegerv(GL_TEXTURE_GEN_S,¶ms[0]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GL_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
getCompressedFormats(params);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
|
||||||
|
*params = getCompressedFormats(NULL);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ctx->dispatcher().glGetIntegerv(pname,params);
|
ctx->dispatcher().glGetIntegerv(pname,params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
#include "TextureUtils.h"
|
#include "TextureUtils.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define MAX_SUPPORTED_PALLETE 10
|
||||||
|
|
||||||
|
|
||||||
struct Color
|
struct Color
|
||||||
{
|
{
|
||||||
@@ -164,3 +166,19 @@ unsigned char* uncompressTexture(GLenum internalformat,GLenum& formatOut,GLsizei
|
|||||||
}
|
}
|
||||||
return pixelsOut;
|
return pixelsOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getCompressedFormats(int* formats){
|
||||||
|
if(formats){
|
||||||
|
formats[0] = GL_PALETTE4_RGBA8_OES;
|
||||||
|
formats[1] = GL_PALETTE4_RGBA4_OES;
|
||||||
|
formats[2] = GL_PALETTE8_RGBA8_OES;
|
||||||
|
formats[3] = GL_PALETTE8_RGBA4_OES;
|
||||||
|
formats[4] = GL_PALETTE4_RGB8_OES;
|
||||||
|
formats[5] = GL_PALETTE8_RGB8_OES;
|
||||||
|
formats[6] = GL_PALETTE4_RGB5_A1_OES;
|
||||||
|
formats[7] = GL_PALETTE8_RGB5_A1_OES;
|
||||||
|
formats[8] = GL_PALETTE4_R5_G6_B5_OES;
|
||||||
|
formats[9] = GL_PALETTE8_R5_G6_B5_OES;
|
||||||
|
}
|
||||||
|
return MAX_SUPPORTED_PALLETE;
|
||||||
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include <GLES/gl.h>
|
#include <GLES/gl.h>
|
||||||
|
|
||||||
|
|
||||||
unsigned char* uncompressTexture(GLenum internalformat,GLenum& formatOut,GLsizei width,GLsizei height,GLsizei imageSize, const GLvoid* data,GLint level);
|
unsigned char* uncompressTexture(GLenum internalformat,GLenum& formatOut,GLsizei width,GLsizei height,GLsizei imageSize, const GLvoid* data,GLint level);
|
||||||
|
int getCompressedFormats(int* formats);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user