From 726ad264f485ce1d39aa387e93ac224fb46ed059 Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Mon, 16 Jul 2012 03:25:09 +0000 Subject: Synch with xorg 1.13 change. As xorg 1.13 change the scrn interaces and remove those global arrays. Some API change cause we can't build. Now fix it. Signed-off-by: Zhigang Gong --- diff --git a/src/glamor.c b/src/glamor.c index 8b7dc93..d51811e 100644 --- a/src/glamor.c +++ b/src/glamor.c @@ -491,7 +491,7 @@ glamor_set_pixmap_private(PixmapPtr pixmap, glamor_pixmap_private *priv) } Bool -glamor_close_screen(int idx, ScreenPtr screen) +glamor_close_screen(CLOSE_SCREEN_ARGS_DECL) { glamor_screen_private *glamor_priv; PixmapPtr screen_pixmap; @@ -533,7 +533,7 @@ glamor_close_screen(int idx, ScreenPtr screen) glamor_release_screen_priv(screen); - return screen->CloseScreen(idx, screen); + return screen->CloseScreen(CLOSE_SCREEN_ARGS); } diff --git a/src/glamor.h b/src/glamor.h index fe3e4f8..bafd543 100644 --- a/src/glamor.h +++ b/src/glamor.h @@ -30,9 +30,8 @@ #define GLAMOR_H #include -#ifdef GLAMOR_FOR_XORG +#include #include -#endif #include #include #include @@ -117,7 +116,11 @@ extern _X_EXPORT void glamor_fini(ScreenPtr screen); * screen pixmap which must be a glamor pixmap and requires * the internal data structure still exist at that time. * Otherwise, the glamor internal structure will not be freed.*/ -extern _X_EXPORT Bool glamor_close_screen(int idx, ScreenPtr screen); +#ifndef XF86_SCRN_INTERFACE +extern _X_EXPORT Bool glamor_close_screen(int scrnIndex, ScreenPtr screen); +#else +extern _X_EXPORT Bool glamor_close_screen(ScreenPtr screen); +#endif /* Let glamor to know the screen's fbo. The low level diff --git a/src/glamor_egl.c b/src/glamor_egl.c index 07acf1a..da9283b 100644 --- a/src/glamor_egl.c +++ b/src/glamor_egl.c @@ -59,6 +59,7 @@ #include #include "glamor.h" +#include "compat-api.h" #include "glamor_gl_dispatch.h" #ifdef GLX_USE_SHARED_DISPATCH #include "glapi.h" @@ -365,7 +366,7 @@ glamor_egl_destroy_textured_pixmap(PixmapPtr pixmap) } static Bool -glamor_egl_close_screen(int idx, ScreenPtr screen) +glamor_egl_close_screen(CLOSE_SCREEN_ARGS_DECL) { ScrnInfoPtr scrn; struct glamor_egl_screen_private *glamor_egl; @@ -391,7 +392,7 @@ glamor_egl_close_screen(int idx, ScreenPtr screen) screen->CloseScreen = glamor_egl->saved_close_screen; - return screen->CloseScreen(idx, screen); + return screen->CloseScreen(CLOSE_SCREEN_ARGS); } static Bool @@ -430,10 +431,15 @@ glamor_egl_screen_init(ScreenPtr screen) } static void -glamor_egl_free_screen(int scrnIndex, int flags) +glamor_egl_free_screen(FREE_SCREEN_ARGS_DECL) { - ScrnInfoPtr scrn = xf86Screens[scrnIndex]; + ScrnInfoPtr scrn; struct glamor_egl_screen_private *glamor_egl; +#ifndef XF86_SCRN_INTERFACE + scrn = xf86Screens[arg]; +#else + scrn = arg; +#endif glamor_egl = glamor_egl_get_screen_private(scrn); if (glamor_egl != NULL) { @@ -447,7 +453,7 @@ glamor_egl_free_screen(int scrnIndex, int flags) #endif scrn->FreeScreen = glamor_egl->saved_free_screen; free(glamor_egl); - scrn->FreeScreen(scrnIndex, flags); + scrn->FreeScreen(FREE_SCREEN_ARGS); } } diff --git a/src/glamor_priv.h b/src/glamor_priv.h index 3b64c31..11d09c4 100644 --- a/src/glamor_priv.h +++ b/src/glamor_priv.h @@ -38,6 +38,7 @@ #define NDEBUG #endif #include "glamor.h" +#include "compat-api.h" #define GL_GLEXT_PROTOTYPES diff --git a/src/glamor_utils.h b/src/glamor_utils.h index a282985..eb2e202 100644 --- a/src/glamor_utils.h +++ b/src/glamor_utils.h @@ -798,7 +798,10 @@ region_is_empty(pixman_region16_t *region) return region->data && region->data->numRects == 0; } +#ifndef ARRAY_SIZE #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +#endif + #define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1)) #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) -- cgit v0.9.0.2-2-gbebe From ab212d3b90cd288da46af43390feacb489db77b1 Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Mon, 16 Jul 2012 09:27:22 +0000 Subject: Added the missed header file for xorg 1.13 compat. Signed-off-by: Zhigang Gong --- diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..1608478 --- a/dev/null +++ b/src/compat-api.h @@ -0,0 +1,107 @@ +/* + * Copyright 2012 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Dave Airlie + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr scrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr screen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int scrnIndex, ScreenPtr screen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer timeout, pointer read_mask +#define BLOCKHANDLER_ARGS arg, blockData, timeout, read_mask + +#define WAKEUPHANDLER_ARGS_DECL int arg, pointer wakeupData, unsigned long result, pointer read_mask +#define WAKEUPHANDLER_ARGS arg, wakeupData, result, read_mask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr screen +#define CLOSE_SCREEN_ARGS scrnIndex, screen + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags +#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags +#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 + +#define FREE_SCREEN_ARGS_DECL int arg, int flags +#define FREE_SCREEN_ARGS arg, flags + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS(flags) scrn->scrnIndex, (flags) + +#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) + +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr scrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr screen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr screen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer timeout, pointer read_mask +#define BLOCKHANDLER_ARGS arg, timeout, read_mask + +#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask +#define WAKEUPHANDLER_ARGS arg, result, read_mask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr screen +#define CLOSE_SCREEN_ARGS screen + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y + +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode +#define SWITCH_MODE_ARGS(arg, m) arg, m + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg +#define FREE_SCREEN_ARGS arg + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS(flags) scrn + +#define XF86_ENABLEDISABLEFB_ARG(x) (x) + +#endif +#endif -- cgit v0.9.0.2-2-gbebe