Check the return value of glGenTextures()
--HG-- extra : rebase_source : e079554f253890d862bfd5d51d7b229e3fcff3d9
This commit is contained in:
parent
d4f386f5e3
commit
42c560b05d
3 changed files with 14 additions and 2 deletions
|
@ -633,6 +633,10 @@ GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
|
||||||
GL_CheckError("", renderer);
|
GL_CheckError("", renderer);
|
||||||
renderdata->glGenTextures(1, &data->texture);
|
renderdata->glGenTextures(1, &data->texture);
|
||||||
|
if (GL_CheckError("glGenTexures()", renderer) < 0) {
|
||||||
|
SDL_free(data);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if ((renderdata->GL_ARB_texture_rectangle_supported)
|
if ((renderdata->GL_ARB_texture_rectangle_supported)
|
||||||
/*&& texture->access != SDL_TEXTUREACCESS_TARGET*/){
|
/*&& texture->access != SDL_TEXTUREACCESS_TARGET*/){
|
||||||
data->type = GL_TEXTURE_RECTANGLE_ARB;
|
data->type = GL_TEXTURE_RECTANGLE_ARB;
|
||||||
|
|
|
@ -475,6 +475,11 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
renderdata->glGetError();
|
renderdata->glGetError();
|
||||||
renderdata->glEnable(GL_TEXTURE_2D);
|
renderdata->glEnable(GL_TEXTURE_2D);
|
||||||
renderdata->glGenTextures(1, &data->texture);
|
renderdata->glGenTextures(1, &data->texture);
|
||||||
|
result = renderdata->glGetError();
|
||||||
|
if (result != GL_NO_ERROR) {
|
||||||
|
SDL_free(data);
|
||||||
|
return GLES_SetError("glGenTextures()", result);
|
||||||
|
}
|
||||||
|
|
||||||
data->type = GL_TEXTURE_2D;
|
data->type = GL_TEXTURE_2D;
|
||||||
/* no NPOV textures allowed in OpenGL ES (yet) */
|
/* no NPOV textures allowed in OpenGL ES (yet) */
|
||||||
|
|
|
@ -418,6 +418,10 @@ GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
||||||
/* Allocate the texture */
|
/* Allocate the texture */
|
||||||
rdata->glGetError();
|
rdata->glGetError();
|
||||||
rdata->glGenTextures(1, &tdata->texture);
|
rdata->glGenTextures(1, &tdata->texture);
|
||||||
|
if (rdata->glGetError() != GL_NO_ERROR) {
|
||||||
|
SDL_free(tdata);
|
||||||
|
return SDL_SetError("Texture creation failed in glGenTextures()");
|
||||||
|
}
|
||||||
rdata->glActiveTexture(GL_TEXTURE0);
|
rdata->glActiveTexture(GL_TEXTURE0);
|
||||||
rdata->glBindTexture(tdata->texture_type, tdata->texture);
|
rdata->glBindTexture(tdata->texture_type, tdata->texture);
|
||||||
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_MIN_FILTER, scaleMode);
|
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_MIN_FILTER, scaleMode);
|
||||||
|
@ -425,8 +429,7 @@ GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
||||||
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||||
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
rdata->glTexParameteri(tdata->texture_type, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||||
rdata->glTexImage2D(tdata->texture_type, 0, format, texture->w, texture->h, 0, format, type, NULL);
|
rdata->glTexImage2D(tdata->texture_type, 0, format, texture->w, texture->h, 0, format, type, NULL);
|
||||||
if (rdata->glGetError() != GL_NO_ERROR)
|
if (rdata->glGetError() != GL_NO_ERROR) {
|
||||||
{
|
|
||||||
rdata->glDeleteTextures(1, &tdata->texture);
|
rdata->glDeleteTextures(1, &tdata->texture);
|
||||||
SDL_free(tdata);
|
SDL_free(tdata);
|
||||||
return SDL_SetError("Texture creation failed");
|
return SDL_SetError("Texture creation failed");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue