gallium: split transfer_inline_write into buffer and texture callbacks
[mesa.git] / src / gallium / tests / graw / gs-test.c
index c43f54595bf39062797725343be6d3ff534cbbbe..00fb59161a8a2c60fcf5fb4b3423961b45ebfef2 100644 (file)
@@ -149,7 +149,6 @@ static float constants2[] =
 static void init_fs_constbuf( void )
 {
    struct pipe_resource templat;
-   struct pipe_box box;
 
    templat.target = PIPE_BUFFER;
    templat.format = PIPE_FORMAT_R8_UNORM;
@@ -169,34 +168,18 @@ static void init_fs_constbuf( void )
       exit(4);
 
    {
-      u_box_2d(0,0,sizeof(constants1),1, &box);
-
-      ctx->transfer_inline_write(ctx,
-                                 constbuf1,
-                                 0,
-                                 PIPE_TRANSFER_WRITE,
-                                 &box,
-                                 constants1,
-                                 sizeof constants1,
-                                 sizeof constants1);
-
+      ctx->buffer_subdata(ctx, constbuf1,
+                          PIPE_TRANSFER_WRITE,
+                          0, sizeof(constants1), constants1);
 
       pipe_set_constant_buffer(ctx,
                                PIPE_SHADER_GEOMETRY, 0,
                                constbuf1);
    }
    {
-      u_box_2d(0,0,sizeof(constants2),1, &box);
-
-      ctx->transfer_inline_write(ctx,
-                                 constbuf2,
-                                 0,
-                                 PIPE_TRANSFER_WRITE,
-                                 &box,
-                                 constants2,
-                                 sizeof constants2,
-                                 sizeof constants2);
-
+      ctx->buffer_subdata(ctx, constbuf2,
+                          PIPE_TRANSFER_WRITE,
+                          0, sizeof(constants2), constants2);
 
       pipe_set_constant_buffer(ctx,
                                PIPE_SHADER_GEOMETRY, 1,
@@ -207,25 +190,23 @@ static void init_fs_constbuf( void )
 
 static void set_viewport( float x, float y,
                           float width, float height,
-                          float near, float far)
+                          float zNear, float zFar)
 {
-   float z = far;
+   float z = zFar;
    float half_width = (float)width / 2.0f;
    float half_height = (float)height / 2.0f;
-   float half_depth = ((float)far - (float)near) / 2.0f;
+   float half_depth = ((float)zFar - (float)zNear) / 2.0f;
    struct pipe_viewport_state vp;
 
    vp.scale[0] = half_width;
    vp.scale[1] = half_height;
    vp.scale[2] = half_depth;
-   vp.scale[3] = 1.0f;
 
    vp.translate[0] = half_width + x;
    vp.translate[1] = half_height + y;
    vp.translate[2] = half_depth + z;
-   vp.translate[3] = 0.0f;
 
-   ctx->set_viewport_state( ctx, &vp );
+   ctx->set_viewport_states( ctx, 0, 1, &vp );
 }
 
 static void set_vertices( void )
@@ -255,13 +236,13 @@ static void set_vertices( void )
    if (draw_strip) {
       vbuf.buffer = pipe_buffer_create_with_data(ctx,
                                                  PIPE_BIND_VERTEX_BUFFER,
-                                                 PIPE_USAGE_STATIC,
+                                                 PIPE_USAGE_DEFAULT,
                                                  sizeof(vertices_strip),
                                                  vertices_strip);
    } else {
       vbuf.buffer = pipe_buffer_create_with_data(ctx,
                                                  PIPE_BIND_VERTEX_BUFFER,
-                                                 PIPE_USAGE_STATIC,
+                                                 PIPE_USAGE_DEFAULT,
                                                  sizeof(vertices),
                                                  vertices);
    }
@@ -343,11 +324,11 @@ static void draw( void )
    else
       util_draw_arrays(ctx, PIPE_PRIM_TRIANGLES, 0, 3);
 
-   ctx->flush(ctx, NULL);
+   ctx->flush(ctx, NULL, 0);
 
    graw_save_surface_to_file(ctx, surf, NULL);
 
-   screen->flush_frontbuffer(screen, rttex, 0, 0, window);
+   screen->flush_frontbuffer(screen, rttex, 0, 0, window, NULL);
 }
 
 #define SIZE 16
@@ -420,14 +401,14 @@ static void init_tex( void )
 
    u_box_2d(0,0,SIZE,SIZE, &box);
 
-   ctx->transfer_inline_write(ctx,
-                              samptex,
-                              0,
-                              PIPE_TRANSFER_WRITE,
-                              &box,
-                              tex2d,
-                              sizeof tex2d[0],
-                              sizeof tex2d);
+   ctx->texture_subdata(ctx,
+                        samptex,
+                        0,
+                        PIPE_TRANSFER_WRITE,
+                        &box,
+                        tex2d,
+                        sizeof tex2d[0],
+         sizeof tex2d);
 
    /* Possibly read back & compare against original data:
     */
@@ -459,7 +440,7 @@ static void init_tex( void )
    if (sv == NULL)
       exit(5);
 
-   ctx->set_fragment_sampler_views(ctx, 1, &sv);
+   ctx->set_sampler_views(ctx, PIPE_SHADER_FRAGMENT, 0, 1, &sv);
    
 
    memset(&sampler_desc, 0, sizeof sampler_desc);
@@ -478,7 +459,7 @@ static void init_tex( void )
    if (sampler == NULL)
       exit(6);
 
-   ctx->bind_fragment_sampler_states(ctx, 1, &sampler);
+   ctx->bind_sampler_states(ctx, PIPE_SHADER_FRAGMENT, 0, 1, &sampler);
    
 }
 
@@ -507,7 +488,7 @@ static void init( void )
       exit(1);
    }
 
-   ctx = screen->context_create(screen, NULL);
+   ctx = screen->context_create(screen, NULL, 0);
    if (ctx == NULL)
       exit(3);
 
@@ -528,7 +509,6 @@ static void init( void )
       exit(4);
 
    surf_tmpl.format = templat.format;
-   surf_tmpl.usage = PIPE_BIND_RENDER_TARGET;
    surf_tmpl.u.tex.level = 0;
    surf_tmpl.u.tex.first_layer = 0;
    surf_tmpl.u.tex.last_layer = 0;
@@ -566,7 +546,8 @@ static void init( void )
       void *handle;
       memset(&rasterizer, 0, sizeof rasterizer);
       rasterizer.cull_face = PIPE_FACE_NONE;
-      rasterizer.gl_rasterization_rules = 1;
+      rasterizer.half_pixel_center = 1;
+      rasterizer.bottom_edge_rule = 1;
       rasterizer.depth_clip = 1;
       handle = ctx->create_rasterizer_state(ctx, &rasterizer);
       ctx->bind_rasterizer_state(ctx, handle);