Blender V4.3
draw_common_c.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2016 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
12
13struct DRWShadingGroup;
14struct DRWView;
16struct GPUMaterial;
17struct GPUTexture;
18struct GPUUniformBuf;
19
20namespace blender::gpu {
21class VertBuf;
22}
23struct ModifierData;
24struct Object;
25struct ParticleSystem;
26struct RegionView3D;
27struct ViewLayer;
28struct Scene;
29struct DRWData;
30namespace blender::draw {
31struct CurvesUniformBufPool;
32}
33
34/* Keep in sync with globalsBlock in shaders */
36
38void DRW_globals_free();
39
41 const RegionView3D *rv3d,
42 float offset);
43
48int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color);
49float *DRW_color_background_blend_get(int theme_id);
50
51bool DRW_object_is_flat(Object *ob, int *r_axis);
53
54/* draw_hair.cc */
55
61 ParticleSystem *psys,
62 ModifierData *md,
63 DRWShadingGroup *shgrp,
64 GPUMaterial *gpu_material);
65
69blender::gpu::VertBuf *DRW_hair_pos_buffer_get(Object *object,
70 ParticleSystem *psys,
71 ModifierData *md);
72void DRW_hair_duplimat_get(Object *object,
73 ParticleSystem *psys,
74 ModifierData *md,
75 float (*dupli_mat)[4]);
76
77void DRW_hair_init();
78void DRW_hair_update();
79void DRW_hair_free();
80
81/* draw_curves.cc */
82
83namespace blender::draw {
84
88gpu::VertBuf *DRW_curves_pos_buffer_get(Object *object);
89
91 DRWShadingGroup *shgrp,
92 GPUMaterial *gpu_material);
93
94void DRW_curves_init(DRWData *drw_data);
95void DRW_curves_ubos_pool_free(CurvesUniformBufPool *pool);
97void DRW_curves_free();
98
99/* draw_pointcloud.cc */
100
102 DRWShadingGroup *shgrp_parent,
103 GPUMaterial *gpu_material);
106
107} // namespace blender::draw
108
109/* draw_volume.cc */
110
117 Object *ob,
118 DRWShadingGroup *shgrp,
119 GPUMaterial *gpu_material);
120
121void DRW_volume_init(DRWData *drw_data);
122void DRW_volume_ubos_pool_free(void *pool);
123void DRW_volume_free();
124
125/* `draw_fluid.cc` */
126
127/* Fluid simulation. */
128void DRW_smoke_ensure(FluidModifierData *fmd, int highres);
133
135
136void DRW_smoke_init(DRWData *drw_data);
137void DRW_smoke_exit(DRWData *drw_data);
138
139/* `draw_common.cc` */
140
147 GPUUniformBuf *block_ubo;
148
149 GPUTexture *ramp;
150 GPUTexture *weight_ramp;
151
152 GPUUniformBuf *view_ubo;
153 GPUUniformBuf *clipping_ubo;
154};
155extern DRW_Global G_draw;
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition BLI_assert.h:90
blender::gpu::VertBuf * DRW_hair_pos_buffer_get(Object *object, ParticleSystem *psys, ModifierData *md)
Definition draw_hair.cc:130
void DRW_fluid_ensure_flags(FluidModifierData *fmd)
void DRW_volume_ubos_pool_free(void *pool)
int DRW_object_wire_theme_get(Object *ob, ViewLayer *view_layer, float **r_color)
DRWShadingGroup * DRW_shgroup_volume_create_sub(Scene *scene, Object *ob, DRWShadingGroup *shgrp, GPUMaterial *gpu_material)
void DRW_volume_free()
void DRW_globals_free()
DRWView * DRW_view_create_with_zoffset(const DRWView *parent_view, const RegionView3D *rv3d, float offset)
void DRW_volume_init(DRWData *drw_data)
void DRW_smoke_ensure_coba_field(FluidModifierData *fmd)
void DRW_fluid_ensure_range_field(FluidModifierData *fmd)
DRWShadingGroup * DRW_shgroup_hair_create_sub(Object *object, ParticleSystem *psys, ModifierData *md, DRWShadingGroup *shgrp, GPUMaterial *gpu_material)
Definition draw_hair.cc:174
void DRW_globals_update()
bool DRW_object_is_flat(Object *ob, int *r_axis)
void DRW_smoke_ensure(FluidModifierData *fmd, int highres)
void DRW_smoke_ensure_velocity(FluidModifierData *fmd)
void DRW_hair_init()
Definition draw_hair.cc:73
void DRW_smoke_exit(DRWData *drw_data)
void DRW_hair_free()
Definition draw_hair.cc:259
void DRW_hair_update()
Definition draw_hair.cc:252
void DRW_smoke_init(DRWData *drw_data)
void DRW_hair_duplimat_get(Object *object, ParticleSystem *psys, ModifierData *md, float(*dupli_mat)[4])
Definition draw_hair.cc:146
void DRW_smoke_free(FluidModifierData *fmd)
bool DRW_object_axis_orthogonal_to_view(Object *ob, int axis)
DRW_Global G_draw
float * DRW_color_background_blend_get(int theme_id)
void DRW_curves_init(DRWData *drw_data)
void DRW_curves_ubos_pool_free(CurvesUniformBufPool *pool)
void DRW_curves_update()
void DRW_pointcloud_init()
DRWShadingGroup * DRW_shgroup_curves_create_sub(Object *object, DRWShadingGroup *shgrp, GPUMaterial *gpu_material)
DRWShadingGroup * DRW_shgroup_pointcloud_create_sub(Object *object, DRWShadingGroup *shgrp_parent, GPUMaterial *gpu_material)
void DRW_curves_free()
gpu::VertBuf * DRW_curves_pos_buffer_get(Object *object)
GlobalsUboStorage block
GPUTexture * weight_ramp
GPUUniformBuf * view_ubo
GPUUniformBuf * clipping_ubo
GPUUniformBuf * block_ubo
GPUTexture * ramp