Module: Mesa
Branch: gallium-rect-textures
Commit: afbb41f5ee3d749482cb8cad53596a703f4a8879
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=afbb41f5ee3d749482cb8cad53596a703f4a8879

Author: Luca Barbieri <l...@luca-barbieri.com>
Date:   Thu Aug 19 01:44:02 2010 +0200

winsys/sw: use PIPE_TEXTURE_RECT if appropriate

---

 src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c 
b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
index b997abd..3a76098 100644
--- a/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
+++ b/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c
@@ -52,6 +52,7 @@ struct wrapper_sw_winsys
    struct sw_winsys base;
    struct pipe_screen *screen;
    struct pipe_context *pipe;
+   enum pipe_texture_target target;
 };
 
 struct wrapper_sw_displaytarget
@@ -145,7 +146,7 @@ wsw_dt_create(struct sw_winsys *ws,
     * XXX Why don't we just get the template.
     */
    memset(&templ, 0, sizeof(templ));
-   templ.target = PIPE_TEXTURE_2D;
+   templ.target = wsw->target;
    templ.width0 = width;
    templ.height0 = height;
    templ.format = format;
@@ -291,6 +292,11 @@ wrapper_sw_winsys_warp_pipe_screen(struct pipe_screen 
*screen)
    if (!wsw->pipe)
       goto err_free;
 
+   if(screen->get_param(screen, PIPE_CAP_NPOT_TEXTURES))
+      wsw->target = PIPE_TEXTURE_2D;
+   else
+      wsw->target = PIPE_TEXTURE_RECT;
+
    return &wsw->base;
 
 err_free:

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to