Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/intern/gpu_index_buffer.cc
| Show First 20 Lines • Show All 382 Lines • ▼ Show 20 Lines | if (max_idx >= 0xFFFF) { | ||||
| * must assign to a valid index within the range. | * must assign to a valid index within the range. | ||||
| * | * | ||||
| * NOTE: For OpenGL we skip this by disabling clamping, as we still need to use | * NOTE: For OpenGL we skip this by disabling clamping, as we still need to use | ||||
| * restart index values for point primitives to disable rendering. */ | * restart index values for point primitives to disable rendering. */ | ||||
| uint16_t clamp_max_idx = (is_restart_compatible(prim_type) || !clamp_indices_in_range) ? | uint16_t clamp_max_idx = (is_restart_compatible(prim_type) || !clamp_indices_in_range) ? | ||||
| 0xFFFFu : | 0xFFFFu : | ||||
| (max_idx - min_idx); | (max_idx - min_idx); | ||||
| for (uint i = 0; i < index_len_; i++) { | for (uint i = 0; i < index_len_; i++) { | ||||
| ushort_idx[i] = (uint16_t)MIN2(clamp_max_idx, uint_idx[i] - min_idx); | ushort_idx[i] = uint16_t(MIN2(clamp_max_idx, uint_idx[i] - min_idx)); | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| index_base_ = 0; | index_base_ = 0; | ||||
| for (uint i = 0; i < index_len_; i++) { | for (uint i = 0; i < index_len_; i++) { | ||||
| ushort_idx[i] = (uint16_t)(uint_idx[i]); | ushort_idx[i] = uint16_t(uint_idx[i]); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| uint32_t *IndexBuf::unmap(const uint32_t *mapped_memory) const | uint32_t *IndexBuf::unmap(const uint32_t *mapped_memory) const | ||||
| { | { | ||||
| size_t size = size_get(); | size_t size = size_get(); | ||||
| uint32_t *result = static_cast<uint32_t *>(MEM_mallocN(size, __func__)); | uint32_t *result = static_cast<uint32_t *>(MEM_mallocN(size, __func__)); | ||||
| ▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines | |||||