Files
test2/source/blender/gpu/GPU_batch_utils.hh
Clément Foucault 28ad3736e8 DRW: Move cube batch generation to GPU module
Avoid access on global DRWShapeCache and still
share the code for batch creation.
Each module is then responsible owner of their
own batch.
2025-02-17 12:36:34 +01:00

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;