softpipe: do something sensible on an error path, squash warning
[mesa.git] / src / gallium / drivers / softpipe / sp_texture.c
index 7c027653135935bb853aa3b5c99a277738f7ee9f..256586ec886e8026301cd3d6bff068ce4705ccc2 100644 (file)
@@ -81,8 +81,8 @@ softpipe_texture_layout(struct softpipe_texture * spt)
 
 
 static struct pipe_texture *
-softpipe_texture_create_screen(struct pipe_screen *screen,
-                               const struct pipe_texture *templat)
+softpipe_texture_create(struct pipe_screen *screen,
+                        const struct pipe_texture *templat)
 {
    struct pipe_winsys *ws = screen->winsys;
    struct softpipe_texture *spt = CALLOC_STRUCT(softpipe_texture);
@@ -91,7 +91,6 @@ softpipe_texture_create_screen(struct pipe_screen *screen,
 
    spt->base = *templat;
    spt->base.refcount = 1;
-   spt->base.pipe = NULL;
    spt->base.screen = screen;
 
    softpipe_texture_layout(spt);
@@ -111,8 +110,8 @@ softpipe_texture_create_screen(struct pipe_screen *screen,
 
 
 static void
-softpipe_texture_release_screen(struct pipe_screen *screen,
-                                struct pipe_texture **pt)
+softpipe_texture_release(struct pipe_screen *screen,
+                         struct pipe_texture **pt)
 {
    if (!*pt)
       return;
@@ -137,9 +136,9 @@ softpipe_texture_release_screen(struct pipe_screen *screen,
 
 
 static struct pipe_surface *
-softpipe_get_tex_surface_screen(struct pipe_screen *screen,
-                                struct pipe_texture *pt,
-                                unsigned face, unsigned level, unsigned zslice)
+softpipe_get_tex_surface(struct pipe_screen *screen,
+                         struct pipe_texture *pt,
+                         unsigned face, unsigned level, unsigned zslice)
 {
    struct pipe_winsys *ws = screen->winsys;
    struct softpipe_texture *spt = softpipe_texture(pt);
@@ -175,11 +174,12 @@ softpipe_get_tex_surface_screen(struct pipe_screen *screen,
 
 static void
 softpipe_texture_update(struct pipe_context *pipe,
-                        struct pipe_texture *texture)
+                        struct pipe_texture *texture,
+                        uint face, uint levelsMask)
 {
    struct softpipe_context *softpipe = softpipe_context(pipe);
    uint unit;
-   for (unit = 0; unit < PIPE_MAX_SAMPLERS; unit++) {
+   for (unit = 0; unit < softpipe->num_textures; unit++) {
       if (softpipe->texture[unit] == texture) {
          sp_flush_tile_cache(softpipe, softpipe->tex_cache[unit]);
       }
@@ -197,7 +197,7 @@ softpipe_init_texture_funcs( struct softpipe_context *softpipe )
 void
 softpipe_init_screen_texture_funcs(struct pipe_screen *screen)
 {
-   screen->texture_create = softpipe_texture_create_screen;
-   screen->texture_release = softpipe_texture_release_screen;
-   screen->get_tex_surface = softpipe_get_tex_surface_screen;
+   screen->texture_create = softpipe_texture_create;
+   screen->texture_release = softpipe_texture_release;
+   screen->get_tex_surface = softpipe_get_tex_surface;
 }