2
* Copyright 2014 VMware, Inc.
5
* Permission is hereby granted, free of charge, to any person obtaining a
6
* copy of this software and associated documentation files (the
7
* "Software"), to deal in the Software without restriction, including
8
* without limitation the rights to use, copy, modify, merge, publish,
9
* distribute, sub license, and/or sell copies of the Software, and to
10
* permit persons to whom the Software is furnished to do so, subject to
11
* the following conditions:
13
* The above copyright notice and this permission notice (including the
14
* next paragraph) shall be included in all copies or substantial portions
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
20
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
21
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
#ifndef U_PRIM_RESTART_H
28
#define U_PRIM_RESTART_H
31
#include "pipe/p_defines.h"
40
struct pipe_draw_info;
41
union pipe_index_binding;
45
util_translate_prim_restart_data(unsigned index_size,
46
void *src_map, void *dst_map,
47
unsigned count, unsigned restart_index);
50
util_translate_prim_restart_ib(struct pipe_context *context,
51
const struct pipe_draw_info *info,
52
const struct pipe_draw_indirect_info *indirect,
53
const struct pipe_draw_start_count_bias *draw,
54
struct pipe_resource **dst_buffer);
56
struct pipe_draw_start_count_bias *
57
util_prim_restart_convert_to_direct(const void *index_map,
58
const struct pipe_draw_info *info,
59
const struct pipe_draw_start_count_bias *draw,
63
unsigned *total_index_count);
66
util_draw_vbo_without_prim_restart(struct pipe_context *context,
67
const struct pipe_draw_info *info,
68
unsigned drawid_offset,
69
const struct pipe_draw_indirect_info *indirect,
70
const struct pipe_draw_start_count_bias *draw);
72
static inline unsigned
73
util_prim_restart_index_from_size(unsigned index_size)
75
/* 1 -> 0xff, 2 -> 0xffff, 4 -> 0xffffffff */
76
return 0xffffffffu >> 8 * (4 - index_size);