Avoid access on global DRWShapeCache and still share the code for batch creation. Each module is then responsible owner of their own batch.
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup gpu
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "BLI_compiler_attrs.h"
|
|
#include "BLI_sys_types.h"
|
|
|
|
struct rctf;
|
|
namespace blender::gpu {
|
|
class Batch;
|
|
}
|
|
|
|
/* `gpu_batch_utils.cc` */
|
|
|
|
/**
|
|
* Creates triangles from a byte-array of polygons.
|
|
*
|
|
* See 'make_shape_2d_from_blend.py' utility to create data to pass to this function.
|
|
*
|
|
* \param polys_flat: Pairs of X, Y coordinates (repeating to signify closing the polygon).
|
|
* \param polys_flat_len: Length of the array (must be an even number).
|
|
* \param rect: Optional region to map the byte 0..255 coords to. When not set use -1..1.
|
|
*/
|
|
blender::gpu::Batch *GPU_batch_tris_from_poly_2d_encoded(const uchar *polys_flat,
|
|
uint polys_flat_len,
|
|
const rctf *rect) ATTR_WARN_UNUSED_RESULT
|
|
ATTR_NONNULL(1);
|
|
blender::gpu::Batch *GPU_batch_wire_from_poly_2d_encoded(const uchar *polys_flat,
|
|
uint polys_flat_len,
|
|
const rctf *rect) ATTR_WARN_UNUSED_RESULT
|
|
ATTR_NONNULL(1);
|
|
|
|
/**
|
|
* Create a batch of a unit cube (-1..+1).
|
|
* Only has position attribute.
|
|
*/
|
|
blender::gpu::Batch *GPU_batch_unit_cube() ATTR_WARN_UNUSED_RESULT;
|
|
|
|
/**
|
|
* Replacement for #gluSphere.
|
|
*
|
|
* \note Only use by draw manager. Use the presets function instead for interface.
|
|
*/
|
|
blender::gpu::Batch *gpu_batch_sphere(int lat_res, int lon_res) ATTR_WARN_UNUSED_RESULT;
|