[PATCH 07/12] glamor: Drop tracking of the last picture attached to pixmaps.

Eric Anholt eric at anholt.net
Wed Jul 8 12:45:13 PDT 2015


Signed-off-by: Eric Anholt <eric at anholt.net>
---
 glamor/glamor.c         | 11 -----------
 glamor/glamor_picture.c | 48 ------------------------------------------------
 glamor/glamor_priv.h    | 15 ---------------
 glamor/glamor_render.c  |  3 ---
 glamor/glamor_utils.h   | 10 +++++-----
 glamor/glamor_window.c  | 32 --------------------------------
 6 files changed, 5 insertions(+), 114 deletions(-)

diff --git a/glamor/glamor.c b/glamor/glamor.c
index 04c548d..6dcc259 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -649,15 +649,6 @@ glamor_init(ScreenPtr screen, unsigned int flags)
     glamor_priv->saved_procs.glyphs = ps->Glyphs;
     ps->Glyphs = glamor_composite_glyphs;
 
-    glamor_priv->saved_procs.create_picture = ps->CreatePicture;
-    ps->CreatePicture = glamor_create_picture;
-
-    glamor_priv->saved_procs.destroy_picture = ps->DestroyPicture;
-    ps->DestroyPicture = glamor_destroy_picture;
-
-    glamor_priv->saved_procs.set_window_pixmap = screen->SetWindowPixmap;
-    screen->SetWindowPixmap = glamor_set_window_pixmap;
-
     glamor_init_vbo(screen);
     glamor_init_pixmap_fbo(screen);
     glamor_init_finish_access_shaders(screen);
@@ -719,10 +710,8 @@ glamor_close_screen(ScreenPtr screen)
     ps->Composite = glamor_priv->saved_procs.composite;
     ps->Trapezoids = glamor_priv->saved_procs.trapezoids;
     ps->Triangles = glamor_priv->saved_procs.triangles;
-    ps->CreatePicture = glamor_priv->saved_procs.create_picture;
     ps->CompositeRects = glamor_priv->saved_procs.composite_rects;
     ps->Glyphs = glamor_priv->saved_procs.glyphs;
-    screen->SetWindowPixmap = glamor_priv->saved_procs.set_window_pixmap;
 
     screen_pixmap = screen->GetScreenPixmap(screen);
     glamor_pixmap_destroy_fbo(screen_pixmap);
diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
index c36d9d6..691f179 100644
--- a/glamor/glamor_picture.c
+++ b/glamor/glamor_picture.c
@@ -900,51 +900,3 @@ glamor_upload_picture_to_texture(PicturePtr picture)
     else
         return GLAMOR_UPLOAD_FAILED;
 }
-
-/*
- * We should already have drawable attached to it, if it has one.
- * Then set the attached pixmap to is_picture format, and set
- * the pict format.
- * */
-int
-glamor_create_picture(PicturePtr picture)
-{
-    PixmapPtr pixmap;
-    glamor_pixmap_private *pixmap_priv;
-
-    if (!picture || !picture->pDrawable)
-        return 0;
-
-    pixmap = glamor_get_drawable_pixmap(picture->pDrawable);
-    pixmap_priv = glamor_get_pixmap_private(pixmap);
-    pixmap_priv->is_picture = 1;
-    pixmap_priv->picture = picture;
-
-    return miCreatePicture(picture);
-}
-
-void
-glamor_destroy_picture(PicturePtr picture)
-{
-    PixmapPtr pixmap;
-    glamor_pixmap_private *pixmap_priv;
-
-    if (!picture || !picture->pDrawable)
-        return;
-
-    pixmap = glamor_get_drawable_pixmap(picture->pDrawable);
-    pixmap_priv = glamor_get_pixmap_private(pixmap);
-
-    if (pixmap_priv) {
-        pixmap_priv->is_picture = 0;
-        pixmap_priv->picture = NULL;
-    }
-    miDestroyPicture(picture);
-}
-
-void
-glamor_picture_format_fixup(PicturePtr picture,
-                            glamor_pixmap_private *pixmap_priv)
-{
-    pixmap_priv->picture = picture;
-}
diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
index 2792afa..5989dc4 100644
--- a/glamor/glamor_priv.h
+++ b/glamor/glamor_priv.h
@@ -173,9 +173,6 @@ struct glamor_saved_procs {
     BitmapToRegionProcPtr bitmap_to_region;
     TrianglesProcPtr triangles;
     AddTrapsProcPtr addtraps;
-    CreatePictureProcPtr create_picture;
-    DestroyPictureProcPtr destroy_picture;
-    SetWindowPixmapProcPtr set_window_pixmap;
 #if XSYNC
     SyncScreenFuncsRec sync_screen_funcs;
 #endif
@@ -350,13 +347,10 @@ typedef struct glamor_pixmap_private {
      * that data on glamor_finish_access().
      */
     glamor_access_t map_access;
-    /** Set if the pixmap is currenty attached to a Picture. */
-    unsigned char is_picture:1;
     glamor_pixmap_fbo *fbo;
     /** current fbo's coords in the whole pixmap. */
     BoxRec box;
     int drm_stride;
-    PicturePtr picture;
     GLuint pbo;
     RegionRec prepare_region;
     Bool prepared;
@@ -734,15 +728,6 @@ Bool glamor_composite_largepixmap_region(CARD8 op,
  **/
 enum glamor_pixmap_status glamor_upload_picture_to_texture(PicturePtr picture);
 
-int glamor_create_picture(PicturePtr picture);
-
-void glamor_set_window_pixmap(WindowPtr pWindow, PixmapPtr pPixmap);
-
-void glamor_destroy_picture(PicturePtr picture);
-
-void glamor_picture_format_fixup(PicturePtr picture,
-                                 glamor_pixmap_private *pixmap_priv);
-
 void glamor_add_traps(PicturePtr pPicture,
                       INT16 x_off, INT16 y_off, int ntrap, xTrap *traps);
 
diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
index 3048cd8..c3a8f17 100644
--- a/glamor/glamor_render.c
+++ b/glamor/glamor_render.c
@@ -936,9 +936,6 @@ glamor_composite_choose_shader(CARD8 op,
                 goto fail;
             }
 
-            if (source->format != saved_source_format) {
-                glamor_picture_format_fixup(source, source_pixmap_priv);
-            }
             /* XXX
              * By default, glamor_upload_picture_to_texture will wire alpha to 1
              * if one picture doesn't have alpha. So we don't do that again in
diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
index 8182006..59e6b64 100644
--- a/glamor/glamor_utils.h
+++ b/glamor/glamor_utils.h
@@ -33,6 +33,7 @@
 #define __GLAMOR_UTILS_H__
 
 #include "glamor_prepare.h"
+#include "mipict.h"
 
 #define v_from_x_coord_x(_xscale_, _x_)          ( 2 * (_x_) * (_xscale_) - 1.0)
 #define v_from_x_coord_y(_yscale_, _y_)          (-2 * (_y_) * (_yscale_) + 1.0)
@@ -756,7 +757,6 @@ glamor_translate_boxes(BoxPtr boxes, int nbox, int dx, int dy)
 						|| _depth_ == 30	\
 						|| _depth_ == 32)
 
-#define GLAMOR_PIXMAP_PRIV_IS_PICTURE(pixmap_priv) (pixmap_priv->is_picture == 1)
 #define GLAMOR_PIXMAP_PRIV_HAS_FBO(pixmap_priv)    (pixmap_priv->gl_fbo == GLAMOR_FBO_NORMAL)
 
 /**
@@ -1287,9 +1287,9 @@ glamor_compare_pictures(ScreenPtr screen,
 
     if (fst_pixmap->drawable.depth != snd_pixmap->drawable.depth) {
         if (fst_generated)
-            glamor_destroy_picture(fst_picture);
+            miDestroyPicture(fst_picture);
         if (snd_generated)
-            glamor_destroy_picture(snd_picture);
+            miDestroyPicture(snd_picture);
 
         ErrorF("Different pixmap depth can not compare!\n");
         return;
@@ -1315,9 +1315,9 @@ glamor_compare_pictures(ScreenPtr screen,
     glamor_finish_access(&snd_pixmap->drawable);
 
     if (fst_generated)
-        glamor_destroy_picture(fst_picture);
+        miDestroyPicture(fst_picture);
     if (snd_generated)
-        glamor_destroy_picture(snd_picture);
+        miDestroyPicture(snd_picture);
 
     return;
 }
diff --git a/glamor/glamor_window.c b/glamor/glamor_window.c
index a39e723..5fd463b 100644
--- a/glamor/glamor_window.c
+++ b/glamor/glamor_window.c
@@ -65,35 +65,3 @@ glamor_change_window_attributes(WindowPtr pWin, unsigned long mask)
     }
     return TRUE;
 }
-
-void
-glamor_set_window_pixmap(WindowPtr win, PixmapPtr pPixmap)
-{
-    ScreenPtr screen = win->drawable.pScreen;
-    glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
-    PixmapPtr old = screen->GetWindowPixmap(win);
-
-    if (pPixmap != old) {
-        glamor_pixmap_private *pixmap_priv;
-        PicturePtr pic = NULL;
-
-        pixmap_priv = glamor_get_pixmap_private(old);
-        if (GLAMOR_PIXMAP_PRIV_IS_PICTURE(pixmap_priv) &&
-            pixmap_priv->picture->pDrawable == (DrawablePtr) win) {
-            pic = pixmap_priv->picture;
-            pixmap_priv->is_picture = 0;
-            pixmap_priv->picture = NULL;
-        }
-
-        pixmap_priv = glamor_get_pixmap_private(pPixmap);
-        if (pixmap_priv) {
-            pixmap_priv->is_picture = ! !pic;
-            pixmap_priv->picture = pic;
-        }
-    }
-
-    screen->SetWindowPixmap = glamor_priv->saved_procs.set_window_pixmap;
-    (screen->SetWindowPixmap) (win, pPixmap);
-    glamor_priv->saved_procs.set_window_pixmap = screen->SetWindowPixmap;
-    screen->SetWindowPixmap = glamor_set_window_pixmap;
-}
-- 
2.1.4



More information about the xorg-devel mailing list