Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #include "util/u_debug.h"
  2.  
  3. #include "i915_resource.h"
  4. #include "i915_context.h"
  5. #include "i915_screen.h"
  6.  
  7.  
  8. static struct pipe_resource *
  9. i915_resource_create(struct pipe_screen *screen,
  10.                      const struct pipe_resource *template)
  11. {
  12.    if (template->target == PIPE_BUFFER)
  13.       return i915_buffer_create(screen, template);
  14.    else
  15.    {
  16.       if (!(template->bind & PIPE_BIND_LINEAR))
  17.          return i915_texture_create(screen, template, FALSE);
  18.       else
  19.          return i915_texture_create(screen, template, TRUE);
  20.    }
  21. }
  22.  
  23. static struct pipe_resource *
  24. i915_resource_from_handle(struct pipe_screen * screen,
  25.                          const struct pipe_resource *template,
  26.                          struct winsys_handle *whandle)
  27. {
  28.    if (template->target == PIPE_BUFFER)
  29.       return NULL;
  30.    else
  31.       return i915_texture_from_handle(screen, template, whandle);
  32. }
  33.  
  34.  
  35. void
  36. i915_init_resource_functions(struct i915_context *i915 )
  37. {
  38.    i915->base.transfer_map = u_transfer_map_vtbl;
  39.    i915->base.transfer_flush_region = u_transfer_flush_region_vtbl;
  40.    i915->base.transfer_unmap = u_transfer_unmap_vtbl;
  41.    i915->base.transfer_inline_write = u_transfer_inline_write_vtbl;
  42. }
  43.  
  44. void
  45. i915_init_screen_resource_functions(struct i915_screen *is)
  46. {
  47.    is->base.resource_create = i915_resource_create;
  48.    is->base.resource_from_handle = i915_resource_from_handle;
  49.    is->base.resource_get_handle = u_resource_get_handle_vtbl;
  50.    is->base.resource_destroy = u_resource_destroy_vtbl;
  51. }
  52.