diff options
-rw-r--r-- | glamor/Makefile.am | 2 | ||||
-rw-r--r-- | glamor/glamor.c | 5 | ||||
-rw-r--r-- | glamor/glamor.h | 3 | ||||
-rw-r--r-- | glamor/glamor_egl.c | 19 | ||||
-rw-r--r-- | glamor/glamor_fbo.c | 8 | ||||
-rw-r--r-- | glamor/glamor_pixmap.c | 12 | ||||
-rw-r--r-- | glamor/glamor_render.c | 2 | ||||
-rw-r--r-- | glamor/glamor_utils.h | 2 | ||||
-rw-r--r-- | glamor/glapi.h | 6 |
9 files changed, 30 insertions, 29 deletions
diff --git a/glamor/Makefile.am b/glamor/Makefile.am index c7e300096..8e334b15e 100644 --- a/glamor/Makefile.am +++ b/glamor/Makefile.am @@ -15,7 +15,7 @@ instdir = $(moduledir) INCLUDES = \ $(XORG_INCS) -AM_CFLAGS = $(XORG_CFLAGS) $(DIX_CFLAGS) $(LIBDRM_CFLAGS) +AM_CFLAGS = $(CWARNFLAGS) $(XORG_CFLAGS) $(DIX_CFLAGS) $(LIBDRM_CFLAGS) libglamor_la_LDFLAGS = -avoid-version diff --git a/glamor/glamor.c b/glamor/glamor.c index 691f758e9..6b6fa0bec 100644 --- a/glamor/glamor.c +++ b/glamor/glamor.c @@ -465,12 +465,11 @@ glamor_close_screen(int idx, ScreenPtr screen) glamor_screen_private *glamor_priv; PixmapPtr screen_pixmap; int flags; - - glamor_priv = glamor_get_screen_private(screen); - flags = glamor_priv->flags; #ifdef RENDER PictureScreenPtr ps = GetPictureScreenIfSet(screen); #endif + glamor_priv = glamor_get_screen_private(screen); + flags = glamor_priv->flags; glamor_glyphs_fini(screen); screen->CloseScreen = glamor_priv->saved_procs.close_screen; if (flags & GLAMOR_USE_SCREEN) { diff --git a/glamor/glamor.h b/glamor/glamor.h index da45acc89..c2db86a3a 100644 --- a/glamor/glamor.h +++ b/glamor/glamor.h @@ -157,6 +157,9 @@ extern _X_EXPORT void glamor_egl_restore_context(ScreenPtr screen); * */ extern _X_EXPORT void glamor_egl_exchange_buffers(PixmapPtr front, PixmapPtr back); +extern _X_EXPORT void glamor_pixmap_exchange_fbos(PixmapPtr front, PixmapPtr back); + + #ifdef GLAMOR_FOR_XORG #define GLAMOR_EGL_MODULE_NAME "glamoregl" diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 35bcc9e68..07acf1a37 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -91,7 +91,8 @@ struct glamor_egl_screen_private { struct gbm_device *gbm; #endif int has_gem; - void *gl_context, *old_context; + void *glamor_context; + void *current_context; int gl_context_depth; PFNEGLCREATEIMAGEKHRPROC egl_create_image_khr; @@ -121,10 +122,9 @@ glamor_egl_make_current(ScreenPtr screen) if (glamor_egl->gl_context_depth++) return; - GET_CURRENT_CONTEXT(current); - glamor_egl->old_context = current; + GET_CURRENT_CONTEXT(glamor_egl->current_context); - if (glamor_egl->gl_context != current) { + if (glamor_egl->glamor_context != glamor_egl->current_context) { eglMakeCurrent(glamor_egl->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); if (!eglMakeCurrent(glamor_egl->display, @@ -145,9 +145,9 @@ glamor_egl_restore_context(ScreenPtr screen) if (--glamor_egl->gl_context_depth) return; - if (glamor_egl->old_context && - glamor_egl->gl_context != glamor_egl->old_context) - SET_CURRENT_CONTEXT(glamor_egl->old_context); + if (glamor_egl->current_context && + glamor_egl->glamor_context != glamor_egl->current_context) + SET_CURRENT_CONTEXT(glamor_egl->current_context); } #else #define glamor_egl_make_current(x) @@ -255,7 +255,7 @@ glamor_egl_create_textured_screen_ext(ScreenPtr screen, return TRUE; } -Bool +static Bool glamor_egl_check_has_gem(int fd) { struct drm_gem_flink flink; @@ -548,8 +548,7 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) return FALSE; } #ifdef GLX_USE_SHARED_DISPATCH - GET_CURRENT_CONTEXT(current); - glamor_egl->gl_context = current; + GET_CURRENT_CONTEXT(glamor_egl->glamor_context); #endif glamor_egl->saved_free_screen = scrn->FreeScreen; scrn->FreeScreen = glamor_egl_free_screen; diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c index d80771a14..546fe7b35 100644 --- a/glamor/glamor_fbo.c +++ b/glamor/glamor_fbo.c @@ -92,7 +92,7 @@ inline static int cache_hbucket(int size) return order; } -glamor_pixmap_fbo * +static glamor_pixmap_fbo * glamor_pixmap_fbo_cache_get(glamor_screen_private *glamor_priv, int w, int h, GLenum format, int flag) { @@ -380,7 +380,7 @@ glamor_destroy_fbo(glamor_pixmap_fbo *fbo) } -glamor_pixmap_fbo * +static glamor_pixmap_fbo * glamor_create_tex_obj(glamor_screen_private *glamor_priv, int w, int h, GLenum format, int flag) { @@ -422,7 +422,7 @@ glamor_create_tex_obj(glamor_screen_private *glamor_priv, return fbo; } -void +static void glamor_destroy_tex_obj(glamor_pixmap_fbo * tex_obj) { assert(tex_obj->fb == 0); @@ -430,7 +430,7 @@ glamor_destroy_tex_obj(glamor_pixmap_fbo * tex_obj) glamor_pixmap_fbo_cache_put(tex_obj); } -int +static int _glamor_create_tex(glamor_screen_private *glamor_priv, int w, int h, GLenum format) { diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c index 9b40b6635..3f268d989 100644 --- a/glamor/glamor_pixmap.c +++ b/glamor/glamor_pixmap.c @@ -185,7 +185,7 @@ glamor_set_alu(struct glamor_gl_dispatch *dispatch, unsigned char alu) return TRUE; } -void * +static void * _glamor_color_convert_a1_a8(void *src_bits, void *dst_bits, int w, int h, int stride, int revert) { PictFormatShort dst_format, src_format; @@ -269,7 +269,7 @@ _glamor_color_convert_a1_a8(void *src_bits, void *dst_bits, int w, int h, int st (*dst) = ((a) << (a_shift)) | ((r) << (b_shift)) | ((g) << (g_shift)) | ((b) << (r_shift)); \ } -void * +static void * _glamor_color_revert_x2b10g10r10(void *src_bits, void *dst_bits, int w, int h, int stride, int no_alpha, int revert, int swap_rb) { int x,y; @@ -306,7 +306,7 @@ _glamor_color_revert_x2b10g10r10(void *src_bits, void *dst_bits, int w, int h, i } -void * +static void * _glamor_color_revert_x1b5g5r5(void *src_bits, void *dst_bits, int w, int h, int stride, int no_alpha, int revert, int swap_rb) { int x,y; @@ -360,7 +360,7 @@ _glamor_color_revert_x1b5g5r5(void *src_bits, void *dst_bits, int w, int h, int * */ -void * +static void * glamor_color_convert_to_bits(void *src_bits, void *dst_bits, int w, int h, int stride, int no_alpha, int revert, int swap_rb) { if (revert == REVERT_DOWNLOADING_A1 || revert == REVERT_UPLOADING_A1) { @@ -917,8 +917,8 @@ glamor_download_sub_pixmap_to_cpu(PixmapPtr pixmap, int x, int y, int w, int h, read = dispatch->glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY); for (yy = 0; yy < pixmap->drawable.height; yy++) - memcpy(data + yy * stride, - read + (h - yy - 1) * stride, stride); + memcpy((char*)data + yy * stride, + (char*)read + (h - yy - 1) * stride, stride); dispatch->glUnmapBuffer(GL_PIXEL_PACK_BUFFER); dispatch->glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); dispatch->glDeleteBuffers(1, &temp_pbo); diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index b729e986d..a17b6fd21 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -961,11 +961,11 @@ glamor_composite_with_shader(CARD8 op, PictFormatShort saved_source_format = 0; float src_matrix[9], mask_matrix[9]; GLfloat source_solid_color[4], mask_solid_color[4]; - dest_pixmap_priv = glamor_get_pixmap_private(dest_pixmap); int vert_stride = 4; int nrect_max; Bool ret = FALSE; + dest_pixmap_priv = glamor_get_pixmap_private(dest_pixmap); if (!GLAMOR_PIXMAP_PRIV_HAS_FBO(dest_pixmap_priv)) { glamor_fallback("dest has no fbo.\n"); goto fail; diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h index 9d32e6e11..5cd37de4e 100644 --- a/glamor/glamor_utils.h +++ b/glamor/glamor_utils.h @@ -886,9 +886,9 @@ static inline void _glamor_compare_pixmaps(PixmapPtr pixmap1, PixmapPtr pixmap2, int little_endian = 0; unsigned char *p_test; int bpp = pixmap1->drawable.depth == 8 ? 1 : 4; + int stride = pixmap1->devKind; assert(pixmap1->devKind == pixmap2->devKind); - int stride = pixmap1->devKind; ErrorF("stride:%d, width:%d, height:%d\n", stride, w, h); diff --git a/glamor/glapi.h b/glamor/glapi.h index da521aa7c..d510dac1d 100644 --- a/glamor/glapi.h +++ b/glamor/glapi.h @@ -79,7 +79,7 @@ extern const struct _glapi_table *_glapi_Dispatch; extern const void *_glapi_Context; # define GET_DISPATCH() _glapi_tls_Dispatch -# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_tls_Context +# define GET_CURRENT_CONTEXT(C) C = (typeof(C)) _glapi_tls_Context # define SET_CURRENT_CONTEXT(C) _glapi_tls_Context = (void*)C #else @@ -92,7 +92,7 @@ extern void *_glapi_Context; # define GET_DISPATCH() \ (likely(_glapi_Dispatch) ? _glapi_Dispatch : _glapi_get_dispatch()) -# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) \ +# define GET_CURRENT_CONTEXT(C) C = (typeof(C)) \ (likely(_glapi_Context) ? _glapi_Context : _glapi_get_context()) @@ -104,7 +104,7 @@ extern void *_glapi_Context; # else # define GET_DISPATCH() _glapi_Dispatch -# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_Context +# define GET_CURRENT_CONTEXT(C) C = (typeof(C)) _glapi_Context # define SET_CURRENT_CONTEXT(C) _glapi_Context = (void*)C # endif |