Blender V5.0
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
25struct DRWDebugModule;
26struct DRWUniformChunk;
27struct DRWViewData;
28struct DRWTextStore;
29struct DupliObject;
30struct Object;
31struct Mesh;
32namespace blender::draw {
33struct CurvesModule;
34struct VolumeModule;
35struct PointCloudModule;
36struct DRW_MeshCDMask;
37class CurveRefinePass;
38class View;
39} // namespace blender::draw
40struct GPUMaterial;
41struct GSet;
42
43/* -------------------------------------------------------------------- */
46
48struct DRWData {
50 DRWInstanceDataList *idatalist;
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. */
78{
80}
81
82namespace blender::draw {
83
85void drw_batch_cache_generate_requested(Object *ob, TaskGraph &task_graph);
86
92
94 const Mesh &mesh,
97 DRW_MeshCDMask *r_cd_needed);
98
99} // namespace blender::draw
100
struct GSet GSet
Definition BLI_ghash.h:337
struct Object Object
DRWContext & drw_get()
void drw_batch_cache_generate_requested_evaluated_mesh_or_curve(Object *ob, TaskGraph &task_graph)
void drw_batch_cache_validate(Object *ob)
void drw_batch_cache_generate_requested(Object *ob, TaskGraph &task_graph)
void drw_batch_cache_generate_requested_delayed(Object *ob)
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)
static DRWContext & get_active()
blender::draw::VolumeModule * volume_module
ListBase smoke_textures
blender::draw::View * default_view
blender::draw::CurvesModule * curves_module
DRWInstanceDataList * idatalist
void modules_exit()
void modules_init()
blender::draw::PointCloudModule * pointcloud_module
DRWViewData * view_data[2]
void modules_begin_sync()