Fixing bugs introduced into X11 shaping implementation by merge.

This commit is contained in:
Eli Gottlieb 2010-08-10 15:45:59 -04:00
parent b6eeb0d250
commit 5f2c8902e0

View file

@ -20,7 +20,7 @@
eligottlieb@gmail.com
*/
#include <assert.h>
#include "SDL_assert.h"
#include "SDL_x11video.h"
#include "SDL_x11shape.h"
#include "SDL_x11window.h"
@ -30,7 +30,7 @@ X11_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned
return SDL_CreateWindow(title,x,y,w,h,flags);
}
SDL_WindowShaper*
SDL_WindowShaper*
X11_CreateShaper(SDL_Window* window) {
SDL_WindowShaper* result = NULL;
@ -41,23 +41,23 @@ X11_CreateShaper(SDL_Window* window) {
result->mode.mode = ShapeModeDefault;
result->mode.parameters.binarizationCutoff = 1;
result->usershownflag = 0;
SDL_ShapeData* data = malloc(sizeof(SDL_ShapeData));
SDL_ShapeData* data = SDL_malloc(sizeof(SDL_ShapeData));
result->driverdata = data;
data->bitmapsize = 0;
data->bitmap = NULL;
window->shaper = result;
int resized_properly = X11_ResizeWindowShape(window);
assert(resized_properly == 0);
SDL_assert(resized_properly == 0);
}
#endif
return result;
}
int
int
X11_ResizeWindowShape(SDL_Window* window) {
SDL_ShapeData* data = window->shaper->driverdata;
assert(data != NULL);
SDL_assert(data != NULL);
unsigned int bitmapsize = window->w / 8;
if(window->w % 8 > 0)
@ -80,7 +80,7 @@ X11_ResizeWindowShape(SDL_Window* window) {
return 0;
}
int
int
X11_SetWindowShape(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowShapeMode *shapeMode) {
if(shaper == NULL || shape == NULL || shaper->driverdata == NULL)
return -1;