1 /* 2 * Copyright 2010 Red Hat Inc. 3 * Authors: Dave Airlie 4 * SPDX-License-Identifier: MIT 5 */ 6 7 #include "r300_context.h" 8 #include "r300_texture.h" 9 #include "r300_transfer.h" 10 #include "r300_screen_buffer.h" 11 12 static struct pipe_resource * r300_resource_create(struct pipe_screen * screen,const struct pipe_resource * templ)13r300_resource_create(struct pipe_screen *screen, 14 const struct pipe_resource *templ) 15 { 16 if (templ->target == PIPE_BUFFER) 17 return r300_buffer_create(screen, templ); 18 else 19 return r300_texture_create(screen, templ); 20 21 } 22 r300_init_resource_functions(struct r300_context * r300)23void r300_init_resource_functions(struct r300_context *r300) 24 { 25 r300->context.buffer_map = r300_buffer_transfer_map; 26 r300->context.texture_map = r300_texture_transfer_map; 27 r300->context.transfer_flush_region = u_default_transfer_flush_region; 28 r300->context.buffer_unmap = r300_buffer_transfer_unmap; 29 r300->context.texture_unmap = r300_texture_transfer_unmap; 30 r300->context.buffer_subdata = u_default_buffer_subdata; 31 r300->context.texture_subdata = u_default_texture_subdata; 32 r300->context.create_surface = r300_create_surface; 33 r300->context.surface_destroy = r300_surface_destroy; 34 } 35 r300_init_screen_resource_functions(struct r300_screen * r300screen)36void r300_init_screen_resource_functions(struct r300_screen *r300screen) 37 { 38 r300screen->screen.resource_create = r300_resource_create; 39 r300screen->screen.resource_from_handle = r300_texture_from_handle; 40 r300screen->screen.resource_get_handle = r300_resource_get_handle; 41 r300screen->screen.resource_destroy = r300_resource_destroy; 42 } 43