Blender  V3.3
draw_common.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2016 Blender Foundation. */
3 
8 #pragma once
9 
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
17 struct DRWShadingGroup;
18 struct FluidModifierData;
19 struct GPUMaterial;
20 struct ModifierData;
21 struct Object;
22 struct ParticleSystem;
23 struct RegionView3D;
24 struct ViewLayer;
25 struct Scene;
26 struct DRWData;
27 
28 /* Keep in sync with globalsBlock in shaders */
30 
32 void DRW_globals_free(void);
33 
34 struct DRWView *DRW_view_create_with_zoffset(const struct DRWView *parent_view,
35  const struct RegionView3D *rv3d,
36  float offset);
37 
42 int DRW_object_wire_theme_get(struct Object *ob, struct ViewLayer *view_layer, float **r_color);
43 float *DRW_color_background_blend_get(int theme_id);
44 
45 bool DRW_object_is_flat(struct Object *ob, int *r_axis);
46 bool DRW_object_axis_orthogonal_to_view(struct Object *ob, int axis);
47 
48 /* draw_hair.cc */
49 
55  struct ParticleSystem *psys,
56  struct ModifierData *md,
57  struct DRWShadingGroup *shgrp,
58  struct GPUMaterial *gpu_material);
59 
63 struct GPUVertBuf *DRW_hair_pos_buffer_get(struct Object *object,
64  struct ParticleSystem *psys,
65  struct ModifierData *md);
66 void DRW_hair_duplimat_get(struct Object *object,
67  struct ParticleSystem *psys,
68  struct ModifierData *md,
69  float (*dupli_mat)[4]);
70 
71 void DRW_hair_init(void);
72 void DRW_hair_update(void);
73 void DRW_hair_free(void);
74 
75 /* draw_curves.cc */
76 
80 struct GPUVertBuf *DRW_curves_pos_buffer_get(struct Object *object);
81 
83  struct DRWShadingGroup *shgrp,
84  struct GPUMaterial *gpu_material);
85 
86 void DRW_curves_init(struct DRWData *drw_data);
88 void DRW_curves_update(void);
89 void DRW_curves_free(void);
90 
91 /* draw_volume.cc */
92 
99  struct Object *ob,
100  struct DRWShadingGroup *shgrp,
101  struct GPUMaterial *gpu_material);
102 
103 void DRW_volume_init(struct DRWData *drw_data);
104 void DRW_volume_ubos_pool_free(void *pool);
105 void DRW_volume_free(void);
106 
107 /* draw_fluid.c */
108 
109 /* Fluid simulation. */
110 void DRW_smoke_ensure(struct FluidModifierData *fmd, int highres);
113 void DRW_fluid_ensure_flags(struct FluidModifierData *fmd);
115 
117 
118 void DRW_smoke_init(struct DRWData *drw_data);
119 void DRW_smoke_exit(struct DRWData *drw_data);
120 
121 /* draw_common.c */
122 
123 struct DRW_Global {
130 
131  struct GPUTexture *ramp;
133 
135 };
136 extern struct DRW_Global G_draw;
137 
138 #ifdef __cplusplus
139 }
140 #endif
#define BLI_STATIC_ASSERT_ALIGN(st, align)
Definition: BLI_assert.h:86
struct GPUTexture GPUTexture
Definition: GPU_texture.h:17
struct GPUUniformBuf GPUUniformBuf
struct GPUVertBuf GPUVertBuf
Scene scene
SyclQueue void void size_t num_bytes void
void DRW_hair_duplimat_get(struct Object *object, struct ParticleSystem *psys, struct ModifierData *md, float(*dupli_mat)[4])
void DRW_globals_update(void)
Definition: draw_common.c:39
void DRW_volume_free(void)
Definition: draw_volume.cc:83
void DRW_fluid_ensure_flags(struct FluidModifierData *fmd)
Definition: draw_fluid.c:519
void DRW_curves_init(struct DRWData *drw_data)
Definition: draw_curves.cc:98
float * DRW_color_background_blend_get(int theme_id)
Definition: draw_common.c:371
void DRW_smoke_init(struct DRWData *drw_data)
Definition: draw_fluid.c:553
void DRW_volume_ubos_pool_free(void *pool)
Definition: draw_volume.cc:64
void DRW_hair_update(void)
Definition: draw_hair.cc:312
struct DRWShadingGroup * DRW_shgroup_volume_create_sub(struct Scene *scene, struct Object *ob, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
Definition: draw_volume.cc:260
struct DRWView * DRW_view_create_with_zoffset(const struct DRWView *parent_view, const struct RegionView3D *rv3d, float offset)
void DRW_curves_ubos_pool_free(struct CurvesUniformBufPool *pool)
Definition: draw_curves.cc:132
struct DRWShadingGroup * DRW_shgroup_curves_create_sub(struct Object *object, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
Definition: draw_curves.cc:303
void DRW_curves_update(void)
Definition: draw_curves.cc:414
void DRW_smoke_free(struct FluidModifierData *fmd)
void DRW_smoke_ensure_velocity(struct FluidModifierData *fmd)
Definition: draw_fluid.c:486
void DRW_smoke_ensure_coba_field(struct FluidModifierData *fmd)
Definition: draw_fluid.c:427
int DRW_object_wire_theme_get(struct Object *ob, struct ViewLayer *view_layer, float **r_color)
Definition: draw_common.c:279
struct DRW_Global G_draw
Definition: draw_common.c:32
void DRW_smoke_ensure(struct FluidModifierData *fmd, int highres)
Definition: draw_fluid.c:453
void DRW_smoke_exit(struct DRWData *drw_data)
Definition: draw_fluid.c:558
struct GPUVertBuf * DRW_curves_pos_buffer_get(struct Object *object)
Definition: draw_curves.cc:269
struct GPUVertBuf * DRW_hair_pos_buffer_get(struct Object *object, struct ParticleSystem *psys, struct ModifierData *md)
Definition: draw_hair.cc:193
struct DRWShadingGroup * DRW_shgroup_hair_create_sub(struct Object *object, struct ParticleSystem *psys, struct ModifierData *md, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
Definition: draw_hair.cc:235
bool DRW_object_axis_orthogonal_to_view(struct Object *ob, int axis)
Definition: draw_common.c:444
void DRW_hair_init(void)
Definition: draw_hair.cc:78
bool DRW_object_is_flat(struct Object *ob, int *r_axis)
Definition: draw_common.c:411
void DRW_fluid_ensure_range_field(struct FluidModifierData *fmd)
Definition: draw_fluid.c:537
void DRW_globals_free(void)
Definition: draw_common.c:251
void DRW_volume_init(struct DRWData *drw_data)
Definition: draw_volume.cc:104
void DRW_hair_free(void)
Definition: draw_hair.cc:391
void DRW_curves_free(void)
Definition: draw_curves.cc:497
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
GlobalsUboStorage block
Definition: draw_common.h:127
struct GPUUniformBuf * block_ubo
Definition: draw_common.h:129
struct GPUTexture * weight_ramp
Definition: draw_common.h:132
struct GPUTexture * ramp
Definition: draw_common.h:131
struct GPUUniformBuf * view_ubo
Definition: draw_common.h:134