Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Static analysis fix: division by zero.
- Loading branch information
Showing
with
9 additions
and
2 deletions.
-
+4
−0
src/render/SDL_render.c
-
+5
−2
src/render/opengl/SDL_render_gl.c
|
@@ -404,6 +404,10 @@ SDL_CreateTexture(SDL_Renderer * renderer, Uint32 format, int access, int w, int |
|
|
if (!format) { |
|
|
format = renderer->info.texture_formats[0]; |
|
|
} |
|
|
if (SDL_BYTESPERPIXEL(format) == 0) { |
|
|
SDL_SetError("Invalid texture format"); |
|
|
return NULL; |
|
|
} |
|
|
if (SDL_ISPIXELFORMAT_INDEXED(format)) { |
|
|
SDL_SetError("Palettized textures are not supported"); |
|
|
return NULL; |
|
|
|
@@ -24,6 +24,7 @@ |
|
|
|
|
|
#include "SDL_hints.h" |
|
|
#include "SDL_log.h" |
|
|
#include "SDL_assert.h" |
|
|
#include "SDL_opengl.h" |
|
|
#include "../SDL_sysrender.h" |
|
|
#include "SDL_shaders_gl.h" |
|
@@ -798,14 +799,16 @@ GL_UpdateTexture(SDL_Renderer * renderer, SDL_Texture * texture, |
|
|
{ |
|
|
GL_RenderData *renderdata = (GL_RenderData *) renderer->driverdata; |
|
|
GL_TextureData *data = (GL_TextureData *) texture->driverdata; |
|
|
const int texturebpp = SDL_BYTESPERPIXEL(texture->format); |
|
|
|
|
|
SDL_assert(texturebpp != 0); /* otherwise, division by zero later. */ |
|
|
|
|
|
GL_ActivateRenderer(renderer); |
|
|
|
|
|
renderdata->glEnable(data->type); |
|
|
renderdata->glBindTexture(data->type, data->texture); |
|
|
renderdata->glPixelStorei(GL_UNPACK_ALIGNMENT, 1); |
|
|
renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, |
|
|
(pitch / SDL_BYTESPERPIXEL(texture->format))); |
|
|
renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, (pitch / texturebpp)); |
|
|
renderdata->glTexSubImage2D(data->type, 0, rect->x, rect->y, rect->w, |
|
|
rect->h, data->format, data->formattype, |
|
|
pixels); |
|
|