Compiling for cocoa now works. Does it run? We'll see.
This commit is contained in:
parent
57c8f6a466
commit
6295237d5f
3 changed files with 6 additions and 4 deletions
|
@ -196,7 +196,7 @@ SDL_ShapeTree* SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shap
|
||||||
return result;
|
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) {
|
if(tree->kind == QuadShape) {
|
||||||
SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upleft,function,closure);
|
SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upleft,function,closure);
|
||||||
SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upright,function,closure);
|
SDL_TraverseShapeTree((SDL_ShapeTree *)tree->data.children.upright,function,closure);
|
||||||
|
|
|
@ -52,9 +52,11 @@ typedef struct {
|
||||||
SDL_ShapeUnion data;
|
SDL_ShapeUnion data;
|
||||||
} SDL_ShapeTree;
|
} SDL_ShapeTree;
|
||||||
|
|
||||||
|
typedef void(*SDL_TraversalFunction)(SDL_ShapeTree*,void*);
|
||||||
|
|
||||||
extern void SDL_CalculateShapeBitmap(SDL_WindowShapeMode mode,SDL_Surface *shape,Uint8* bitmap,Uint8 ppb);
|
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 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);
|
extern void SDL_FreeShapeTree(SDL_ShapeTree** shapeTree);
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
/* Ends C function definitions when using C++ */
|
||||||
|
|
|
@ -59,7 +59,7 @@ NSRect convert_rect(SDL_Rect rect,SDL_Window* window) {
|
||||||
return [[((SDL_WindowData*)window->driverdata)->nswindow contentView] convertRectFromBase:nsrect];
|
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) {
|
if(tree->kind == OpaqueShape) {
|
||||||
NSRect rect = convert_rect(tree->data.shape,cong->window);
|
NSRect rect = convert_rect(tree->data.shape,cong->window);
|
||||||
[cong->clipPath appendBezierPathWithRect:rect];
|
[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_PathConglomeration cong = {clipPath,shaper->window};
|
||||||
|
|
||||||
SDL_TraverseShapeTree(data->shape,&ConglomerateShapeTree,cong);
|
SDL_TraverseShapeTree(data->shape,(SDL_TraversalFunction)&ConglomerateShapeTree,(void*)&cong);
|
||||||
|
|
||||||
[clipPath addClip];
|
[clipPath addClip];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue