Blender
V5.0
source
blender
draw
intern
draw_context_private.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
8
9
/* Private functions / structs of the draw manager */
10
11
#pragma once
12
13
#include "
DRW_engine.hh
"
14
#include "
DRW_render.hh
"
15
16
#include "
BLI_task.h
"
17
#include "
BLI_threads.h
"
18
#include "
BLI_vector_set.hh
"
19
20
#include "
GPU_batch.hh
"
21
#include "
GPU_context.hh
"
22
#include "
GPU_framebuffer.hh
"
23
#include "
GPU_viewport.hh
"
24
25
struct
DRWDebugModule;
26
struct
DRWUniformChunk;
27
struct
DRWViewData
;
28
struct
DRWTextStore
;
29
struct
DupliObject
;
30
struct
Object
;
31
struct
Mesh
;
32
namespace
blender::draw
{
33
struct
CurvesModule
;
34
struct
VolumeModule
;
35
struct
PointCloudModule
;
36
struct
DRW_MeshCDMask
;
37
class
CurveRefinePass
;
38
class
View
;
39
}
// namespace blender::draw
40
struct
GPUMaterial
;
41
struct
GSet
;
42
43
/* -------------------------------------------------------------------- */
46
48
struct
DRWData
{
50
DRWInstanceDataList *
idatalist
;
52
ListBase
smoke_textures
;
54
DRWViewData
*
view_data
[2];
56
blender::draw::CurvesModule
*
curves_module
;
57
blender::draw::VolumeModule
*
volume_module
;
58
blender::draw::PointCloudModule
*
pointcloud_module
;
60
blender::draw::View
*
default_view
;
61
62
/* Ensure modules are created. */
63
void
modules_init
();
64
/* Callbacks before each sync cycle. */
65
void
modules_begin_sync
();
66
/* Callbacks after one draw to clear transient data. */
67
void
modules_exit
();
68
};
69
71
72
/* -------------------------------------------------------------------- */
75
76
/* Get thread local draw context. */
77
inline
DRWContext
&
drw_get
()
78
{
79
return
DRWContext::get_active
();
80
}
81
82
namespace
blender::draw
{
83
84
void
drw_batch_cache_validate
(
Object
*ob);
85
void
drw_batch_cache_generate_requested
(
Object
*ob, TaskGraph &task_graph);
86
90
void
drw_batch_cache_generate_requested_delayed
(
Object
*ob);
91
void
drw_batch_cache_generate_requested_evaluated_mesh_or_curve
(
Object
*ob, TaskGraph &task_graph);
92
93
void
DRW_mesh_get_attributes
(
const
Object
&
object
,
94
const
Mesh
&mesh,
95
Span<const GPUMaterial *>
materials,
96
VectorSet<std::string>
*r_attrs,
97
DRW_MeshCDMask
*r_cd_needed);
98
99
}
// namespace blender::draw
100
GSet
struct GSet GSet
Definition
BLI_ghash.h:337
BLI_task.h
BLI_threads.h
BLI_vector_set.hh
Object
struct Object Object
DRW_engine.hh
DRW_render.hh
GPU_batch.hh
GPU_context.hh
GPU_framebuffer.hh
GPU_viewport.hh
blender::Span
Definition
BLI_span.hh:74
blender::VectorSet
Definition
BLI_vector_set.hh:92
blender::draw::CurveRefinePass
Definition
draw_hair_private.hh:22
blender::draw::View
Definition
draw_view.hh:37
blender::eevee::VolumeModule
Definition
eevee_volume.hh:52
drw_get
DRWContext & drw_get()
Definition
draw_context_private.hh:77
blender::draw
Definition
DRW_engine.hh:179
blender::draw::drw_batch_cache_generate_requested_evaluated_mesh_or_curve
void drw_batch_cache_generate_requested_evaluated_mesh_or_curve(Object *ob, TaskGraph &task_graph)
Definition
draw_cache.cc:529
blender::draw::drw_batch_cache_validate
void drw_batch_cache_validate(Object *ob)
Definition
draw_cache.cc:459
blender::draw::drw_batch_cache_generate_requested
void drw_batch_cache_generate_requested(Object *ob, TaskGraph &task_graph)
Definition
draw_cache.cc:489
blender::draw::drw_batch_cache_generate_requested_delayed
void drw_batch_cache_generate_requested_delayed(Object *ob)
Definition
draw_cache.cc:558
blender::draw::DRW_mesh_get_attributes
void DRW_mesh_get_attributes(const Object &object, const Mesh &mesh, const Span< const GPUMaterial * > materials, VectorSet< std::string > *r_attrs, DRW_MeshCDMask *r_cd_needed)
Definition
draw_cache_impl_mesh.cc:801
DRWContext
Definition
DRW_render.hh:224
DRWContext::get_active
static DRWContext & get_active()
Definition
DRW_render.hh:378
DRWData
Definition
draw_context_private.hh:48
DRWData::volume_module
blender::draw::VolumeModule * volume_module
Definition
draw_context_private.hh:57
DRWData::smoke_textures
ListBase smoke_textures
Definition
draw_context_private.hh:52
DRWData::default_view
blender::draw::View * default_view
Definition
draw_context_private.hh:60
DRWData::curves_module
blender::draw::CurvesModule * curves_module
Definition
draw_context_private.hh:56
DRWData::idatalist
DRWInstanceDataList * idatalist
Definition
draw_context_private.hh:50
DRWData::modules_exit
void modules_exit()
Definition
draw_context.cc:422
DRWData::modules_init
void modules_init()
Definition
draw_context.cc:407
DRWData::pointcloud_module
blender::draw::PointCloudModule * pointcloud_module
Definition
draw_context_private.hh:58
DRWData::view_data
DRWViewData * view_data[2]
Definition
draw_context_private.hh:54
DRWData::modules_begin_sync
void modules_begin_sync()
Definition
draw_context.cc:415
DRWTextStore
Definition
draw_manager_text.cc:71
DRWViewData
Definition
draw_view_data.hh:61
DupliObject
Definition
BKE_duplilist.hh:30
GPUMaterial
Definition
gpu/intern/gpu_material.cc:63
ListBase
Definition
DNA_listBase.h:32
Mesh
Definition
DNA_mesh_types.h:58
Object
Definition
DNA_object_types.h:191
blender::draw::CurvesModule
Definition
draw_hair_private.hh:49
blender::draw::DRW_MeshCDMask
Definition
draw_attributes.hh:28
blender::draw::PointCloudModule
Definition
draw_pointcloud.cc:29
Generated on
for Blender by
doxygen
1.16.1