From 4df641fc8f9d0ba01af5c65e481e2bfe6b544d04 Mon Sep 17 00:00:00 2001 From: egottlieb Date: Tue, 3 Aug 2010 23:22:31 -0400 Subject: [PATCH] Compiling for cocoa now works. Does it run? We'll see. --- src/video/SDL_shape.c | 2 +- src/video/SDL_shape_internals.h | 4 +++- src/video/cocoa/SDL_cocoashape.m | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/video/SDL_shape.c b/src/video/SDL_shape.c index a00759b47..92f582cad 100644 --- a/src/video/SDL_shape.c +++ b/src/video/SDL_shape.c @@ -196,7 +196,7 @@ SDL_ShapeTree* SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shap return result; } -void SDL_TraverseShapeTree(SDL_ShapeTree *tree,void(*function)(SDL_ShapeTree*,void*),void* closure) { +void SDL_TraverseShapeTree(SDL_ShapeTree *tree,SDL_TraversalFunction function,void* closure) { if(tree->kind == QuadShape) { SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upleft,function,closure); SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upright,function,closure); diff --git a/src/video/SDL_shape_internals.h b/src/video/SDL_shape_internals.h index 3b3867bdb..18763f922 100644 --- a/src/video/SDL_shape_internals.h +++ b/src/video/SDL_shape_internals.h @@ -51,10 +51,12 @@ typedef struct { SDL_ShapeKind kind; SDL_ShapeUnion data; } SDL_ShapeTree; + +typedef void(*SDL_TraversalFunction)(SDL_ShapeTree*,void*); extern void SDL_CalculateShapeBitmap(SDL_WindowShapeMode mode,SDL_Surface *shape,Uint8* bitmap,Uint8 ppb); extern SDL_ShapeTree* SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shape,SDL_bool invert); -extern void SDL_TraverseShapeTree(SDL_ShapeTree *tree,void(*function)(SDL_ShapeTree*,void*),void* closure); +extern void SDL_TraverseShapeTree(SDL_ShapeTree *tree,SDL_TraversalFunction function,void* closure); extern void SDL_FreeShapeTree(SDL_ShapeTree** shapeTree); /* Ends C function definitions when using C++ */ diff --git a/src/video/cocoa/SDL_cocoashape.m b/src/video/cocoa/SDL_cocoashape.m index c2baac5e3..7be4036f3 100644 --- a/src/video/cocoa/SDL_cocoashape.m +++ b/src/video/cocoa/SDL_cocoashape.m @@ -59,7 +59,7 @@ NSRect convert_rect(SDL_Rect rect,SDL_Window* window) { return [[((SDL_WindowData*)window->driverdata)->nswindow contentView] convertRectFromBase:nsrect]; } -void ConglomerateShapeTree(SDL_ShapeTree* tree,SDL_PathConglomeration cong) { +void ConglomerateShapeTree(SDL_ShapeTree* tree,SDL_PathConglomeration* cong) { if(tree->kind == OpaqueShape) { NSRect rect = convert_rect(tree->data.shape,cong->window); [cong->clipPath appendBezierPathWithRect:rect]; @@ -84,7 +84,7 @@ int Cocoa_SetWindowShape(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowS SDL_PathConglomeration cong = {clipPath,shaper->window}; - SDL_TraverseShapeTree(data->shape,&ConglomerateShapeTree,cong); + SDL_TraverseShapeTree(data->shape,(SDL_TraversalFunction)&ConglomerateShapeTree,(void*)&cong); [clipPath addClip]; }