# HG changeset patch # User Matt Plumtree # Date 1289584565 0 # Node ID 24381b61de5c19af34922e88cf421056eed88123 # Parent 82d8da1d79c75f787cffc7ccaf13228365d5f616 Host OpenGL ES 2.0 code now building without warning or error using GCC. diff -r 82d8da1d79c7 -r 24381b61de5c bug235.pkgdef.xml --- a/bug235.pkgdef.xml Wed Nov 10 15:26:31 2010 +0000 +++ b/bug235.pkgdef.xml Fri Nov 12 17:56:05 2010 +0000 @@ -115,6 +115,9 @@ + + + diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/buffer.c --- a/hostsupport/hostopengles20/src/buffer.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/buffer.c Fri Nov 12 17:56:05 2010 +0000 @@ -32,7 +32,7 @@ DGLBuffer* DGLBuffer_create(GLuint name) { - DGLBuffer* buffer = malloc(sizeof(DGLBuffer)); + DGLBuffer* buffer = (DGLBuffer*)malloc(sizeof(DGLBuffer)); if(buffer == NULL) { return NULL; diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/buffer.h --- a/hostsupport/hostopengles20/src/buffer.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/buffer.h Fri Nov 12 17:56:05 2010 +0000 @@ -44,4 +44,4 @@ DGLBuffer* DGLBuffer_create(GLuint name); void DGLBuffer_destroy(DGLBuffer* buffer); -#endif /* BUFFER_H_ */ \ No newline at end of file +#endif /* BUFFER_H_ */ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/context.c --- a/hostsupport/hostopengles20/src/context.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/context.c Fri Nov 12 17:56:05 2010 +0000 @@ -31,7 +31,7 @@ DGLContext* DGLContext_create(void* native_context) { - DGLContext* ctx = malloc(sizeof(DGLContext)); + DGLContext* ctx = (DGLContext*)malloc(sizeof(DGLContext)); if(ctx == NULL) { return NULL; @@ -61,7 +61,7 @@ ctx->hgl.GetIntegerv(GL_MAX_VERTEX_ATTRIBS, &temp); ctx->max_vertex_attribs = temp; - ctx->vertex_arrays = malloc(ctx->max_vertex_attribs * sizeof(DGLVertexArray)); + ctx->vertex_arrays = (DGLVertexArray*)malloc(ctx->max_vertex_attribs * sizeof(DGLVertexArray)); if(ctx->vertex_arrays == NULL) { return GL_FALSE; @@ -363,7 +363,7 @@ DGLES2_ASSERT(source != NULL); DGLES2_ASSERT(length >= 0); - shader->source = malloc(length + 1); + shader->source = (char*)malloc(length + 1); if(shader->source == NULL) { return GL_FALSE; diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/context.h --- a/hostsupport/hostopengles20/src/context.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/context.h Fri Nov 12 17:56:05 2010 +0000 @@ -29,10 +29,6 @@ #ifndef _GLESCONTEXT_H_ #define _GLESCONTEXT_H_ -#ifdef __cplusplus -extern "C" { -#endif - #include "platform.h" #include "degl.h" #include "vertex.h" @@ -42,6 +38,10 @@ #include "texture.h" #include "fbo.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct DGLContext { GLboolean initialized; diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/degl.cpp --- a/hostsupport/hostopengles20/src/degl.cpp Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/degl.cpp Fri Nov 12 17:56:05 2010 +0000 @@ -366,7 +366,7 @@ int EGLtoGLES2Interface::BindTexImage( void* surface, int level, bool generate_mipmap, const SurfaceDescriptor* desc, void* buffer ) { - DGLES2_ENTER_RET(NULL); + DGLES2_ENTER_RET(0); GLuint ret = 0; @@ -495,7 +495,7 @@ } // Not reached. - return -1; + return (GLenum)-1; } static bool dglPrepareState(DGLContext& ctx, GLuint name, EImageTarget target, GLint level, GLenum& query_target, GLenum& bind_target, GLint& binding) @@ -617,7 +617,7 @@ surfDesc.m_blueShift = 0; surfDesc.m_luminanceShift = 0; surfDesc.m_alphaShift = 0; - int bpp = 0; + switch(format) { #ifndef DGLES2_NO_SRGB diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/degl.h --- a/hostsupport/hostopengles20/src/degl.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/degl.h Fri Nov 12 17:56:05 2010 +0000 @@ -62,6 +62,7 @@ { public: EGLtoGLES2Interface(); + virtual ~EGLtoGLES2Interface() {} void SetEGLInterface( IGLEStoEGLInterface* ); void* CreateContext( void* nativeContext ); @@ -88,4 +89,4 @@ #endif /* __cplusplus */ -#endif /* DEGL_H */ \ No newline at end of file +#endif /* DEGL_H */ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/fbo.c --- a/hostsupport/hostopengles20/src/fbo.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/fbo.c Fri Nov 12 17:56:05 2010 +0000 @@ -30,9 +30,16 @@ #include "hgl.h" #include "context.h" +#ifdef __cplusplus +extern "C" +{ +GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); +} +#endif + DGLRenderbuffer* DGLRenderbuffer_create(GLuint name) { - DGLRenderbuffer* buffer = malloc(sizeof(DGLRenderbuffer)); + DGLRenderbuffer* buffer = (DGLRenderbuffer*)malloc(sizeof(DGLRenderbuffer)); if(buffer == NULL) { return NULL; @@ -261,4 +268,4 @@ DGLES2_ERROR(GL_INVALID_OPERATION); } DGLES2_LEAVE_NO_ERROR_CHECK(); -} \ No newline at end of file +} diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/get.c --- a/hostsupport/hostopengles20/src/get.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/get.c Fri Nov 12 17:56:05 2010 +0000 @@ -254,4 +254,3 @@ DGLES2_LEAVE_RET(str); } } - diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/get.h --- a/hostsupport/hostopengles20/src/get.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/get.h Fri Nov 12 17:56:05 2010 +0000 @@ -37,4 +37,4 @@ DGLES2_TYPE_BOOL } DGLType; -#endif /* GET_H_ */ \ No newline at end of file +#endif /* GET_H_ */ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/half.c --- a/hostsupport/hostopengles20/src/half.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/half.c Fri Nov 12 17:56:05 2010 +0000 @@ -54,4 +54,4 @@ (mantissa << 13); return *(GLfloat*)&conv; } -} \ No newline at end of file +} diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/half.h --- a/hostsupport/hostopengles20/src/half.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/half.h Fri Nov 12 17:56:05 2010 +0000 @@ -33,4 +33,4 @@ GLfloat dglConvertHalfToFloat(khronos_int16_t half); -#endif /* HALF_H_ */ \ No newline at end of file +#endif /* HALF_H_ */ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/hgl.h --- a/hostsupport/hostopengles20/src/hgl.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/hgl.h Fri Nov 12 17:56:05 2010 +0000 @@ -219,7 +219,7 @@ #ifndef HGL_NO_VARIABLES extern HGL hgl; -extern int hglLoad(); +extern int hglLoad(HGL* hgl); #endif // HGL_NO_VARIABLES #endif // HGL_H_ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/object.c --- a/hostsupport/hostopengles20/src/object.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/object.c Fri Nov 12 17:56:05 2010 +0000 @@ -107,4 +107,4 @@ object = object->next; } return object; -} \ No newline at end of file +} diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/object.h --- a/hostsupport/hostopengles20/src/object.h Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/object.h Fri Nov 12 17:56:05 2010 +0000 @@ -41,4 +41,4 @@ DGLObject* DGLObject_remove(DGLObject** root, GLuint name); DGLObject* DGLObject_find(DGLObject* root, GLuint name); -#endif /* OBJECT_H_ */ \ No newline at end of file +#endif /* OBJECT_H_ */ diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/program.c --- a/hostsupport/hostopengles20/src/program.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/program.c Fri Nov 12 17:56:05 2010 +0000 @@ -35,7 +35,7 @@ DGLProgram* DGLProgram_create(GLuint name) { - DGLProgram* program = malloc(sizeof(DGLProgram)); + DGLProgram* program = (DGLProgram*)malloc(sizeof(DGLProgram)); if(program == NULL) { return NULL; diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/shader.c --- a/hostsupport/hostopengles20/src/shader.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/shader.c Fri Nov 12 17:56:05 2010 +0000 @@ -33,7 +33,7 @@ DGLShader* DGLShader_create(GLuint name) { - DGLShader* shader = malloc(sizeof(DGLShader)); + DGLShader* shader = (DGLShader*)malloc(sizeof(DGLShader)); if(shader == NULL) { return NULL; @@ -255,7 +255,7 @@ if (buffer) { free(buffer); } - buffer = malloc(buffersize + 1); + buffer = (char*)malloc(buffersize + 1); } memcpy(buffer, prev, s - prev); buffer[s - prev] = 0; @@ -269,7 +269,7 @@ if (buffer) { free(buffer); } - buffer = malloc(buffersize + 1); + buffer = (char*)malloc(buffersize + 1); } memcpy(buffer, s, e - s); buffer[e - s] = 0; @@ -299,7 +299,7 @@ *patched_len = 0; buffer_size = len; - patched = malloc(buffer_size + 1); + patched = (char*)malloc(buffer_size + 1); if(patched == NULL) { return NULL; } @@ -342,7 +342,7 @@ tok_len = strlen(p); if(*patched_len + tok_len > buffer_size) { buffer_size *= 2; - patched = realloc(patched, buffer_size + 1); + patched = (char*)realloc(patched, buffer_size + 1); if(patched == NULL) { return NULL; } @@ -357,7 +357,7 @@ if (!version_found) { char* new_patched; *patched_len += strlen("#version 120\n"); - new_patched = malloc(*patched_len + 1); + new_patched = (char*)malloc(*patched_len + 1); if (new_patched == NULL) { return NULL; } @@ -405,8 +405,8 @@ } Dprintf("---END-ORIGINAL-SHADER---\n"); #endif // !NDEBUG - char** string_dgl = malloc(sizeof(char*)*count); - GLint* length_dgl = malloc(sizeof(GLint)*count); + char** string_dgl = (char**)malloc(sizeof(char*)*count); + GLint* length_dgl = (GLint*)malloc(sizeof(GLint)*count); // Remove the non OpenGL 2.x compilant keywords. for(unsigned i = 0; i < count; ++i) @@ -423,7 +423,7 @@ }; length_dgl[i] = length ? length[i] : strlen(string[i]); - string_dgl[i] = malloc(length_dgl[i] + 1); + string_dgl[i] = (char*)malloc(length_dgl[i] + 1); memcpy(string_dgl[i], string[i], length_dgl[i]); string_dgl[i][length_dgl[i]] = 0; @@ -487,7 +487,7 @@ if(source == NULL) { - source = malloc(total_len + 1); + source = (char*)malloc(total_len + 1); if(source == NULL) { DGLES2_ERROR(GL_OUT_OF_MEMORY); @@ -496,7 +496,7 @@ } else { - source = realloc(source, total_len + 1); + source = (char*)realloc(source, total_len + 1); if(source == NULL) { DGLES2_ERROR(GL_OUT_OF_MEMORY); diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/texture.c --- a/hostsupport/hostopengles20/src/texture.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/texture.c Fri Nov 12 17:56:05 2010 +0000 @@ -33,9 +33,16 @@ #include "util.h" #include "degl.h" +#ifdef __cplusplus +extern "C" +{ +GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); +} +#endif + DGLTexture* DGLTexture_create(GLuint name, DGLTextureType type, GLint num_levels) { - DGLTexture* texture = malloc(sizeof(DGLTexture)); + DGLTexture* texture = (DGLTexture*)malloc(sizeof(DGLTexture)); if(texture == NULL) { return NULL; @@ -51,7 +58,7 @@ for(face = 0; face < 6; face++) { texture->num_levels[face] = 0; - texture->levels[face] = malloc(num_levels * sizeof(DGLTextureLevel)); + texture->levels[face] = (DGLTextureLevel*)malloc(num_levels * sizeof(DGLTextureLevel)); if(texture->levels[face] == NULL) { while(face--) @@ -118,7 +125,7 @@ default: DGLES2_ASSERT(GL_FALSE); - return -1; + return (GLenum)-1; } } } @@ -384,7 +391,7 @@ { int bytes_per_pixel = 3; // RGB888 - unsigned char* decompressed = malloc(width * height * bytes_per_pixel); + unsigned char* decompressed = (unsigned char*)malloc(width * height * bytes_per_pixel); if(decompressed == NULL) { return NULL; @@ -582,7 +589,7 @@ static void* dglDecompressPalettedTexture(int level, GLenum format, int width, int height, int imageSize, const void* data) { - const unsigned char* palette = data; + const unsigned char* palette = (const unsigned char*)data; int bits_per_pixel; int palette_entry_size; int num_palette_entries; @@ -666,7 +673,7 @@ bytes_per_pixel = 4; } - decompressed_data = malloc(width * height * bytes_per_pixel); + decompressed_data = (char*)malloc(width * height * bytes_per_pixel); if(decompressed_data == NULL) { return NULL; @@ -880,7 +887,7 @@ DGLES2_ERROR(GL_INVALID_VALUE); } - decompressed_data = dglDecompressETCTexture(width, height, data); + decompressed_data = dglDecompressETCTexture(width, height, (const unsigned char*)data); ctx->hgl.TexImage2D(target, level, GL_RGB, width, height, border, GL_RGB, GL_UNSIGNED_BYTE, decompressed_data); free(decompressed_data); if(DGLContext_getHostError(ctx) == GL_NO_ERROR) @@ -1135,7 +1142,7 @@ DGLES2_ASSERT(GL_FALSE); } - conv = malloc(width * height * components * sizeof(GLfloat)); + conv = (GLfloat*)malloc(width * height * components * sizeof(GLfloat)); if(conv == NULL) { return NULL; @@ -1341,4 +1348,4 @@ } } DGLES2_LEAVE_NO_ERROR_CHECK(); -} \ No newline at end of file +} diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/util.c --- a/hostsupport/hostopengles20/src/util.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/util.c Fri Nov 12 17:56:05 2010 +0000 @@ -46,4 +46,4 @@ int dglMax(int a, int b) { return a > b ? a : b; -} \ No newline at end of file +} diff -r 82d8da1d79c7 -r 24381b61de5c hostsupport/hostopengles20/src/vertex.c --- a/hostsupport/hostopengles20/src/vertex.c Wed Nov 10 15:26:31 2010 +0000 +++ b/hostsupport/hostopengles20/src/vertex.c Fri Nov 12 17:56:05 2010 +0000 @@ -89,12 +89,12 @@ { if(type == DGLES2_TYPE_INT) { - ctx->hgl.GetVertexAttribiv(index, GL_CURRENT_VERTEX_ATTRIB, params); + ctx->hgl.GetVertexAttribiv(index, GL_CURRENT_VERTEX_ATTRIB, (GLint*)params); } else { DGLES2_ASSERT(type == DGLES2_TYPE_FLOAT); - ctx->hgl.GetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, params); + ctx->hgl.GetVertexAttribfv(index, GL_CURRENT_VERTEX_ATTRIB, (GLfloat*)params); } } return GL_TRUE; @@ -165,7 +165,7 @@ if(va->floatptr) free(va->floatptr); - va->floatptr = malloc(sizeof(GLfloat)*count*va->size); + va->floatptr = (GLfloat*)malloc(sizeof(GLfloat)*count*va->size); { GLsizei j; for(j = 0; j < count; ++j) @@ -449,4 +449,3 @@ } DGLES2_LEAVE(); } -