Blender V5.0
draw_view_data.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
11
12#pragma once
13
14#include "BLI_map.hh"
16
17#include "DRW_render.hh"
19
28
29#define GPU_INFO_SIZE 512 /* IMA_MAX_RENDER_TEXT_SIZE */
30
31namespace blender::draw {
32class TextureFromPool;
33class Manager;
34} // namespace blender::draw
35
36struct DRWTextStore;
37namespace blender::gpu {
38class FrameBuffer;
39class Texture;
40} // namespace blender::gpu
41struct GPUViewport;
42struct ListBase;
43
53
60
62 public:
66 bool from_viewport = false;
70
80#ifdef WITH_DRAW_DEBUG
81 blender::draw::edit_select_debug::Engine edit_select_debug;
82#endif
84
93
96
97 public:
100
102
103 template<typename CallbackT> void foreach_engine(CallbackT callback)
104 {
105 /* IMPORTANT: Order here defines the draw order. */
106
107 /* Render engines. Output to the render result frame-buffer. Mutually exclusive. */
108
109 callback(eevee);
110 callback(workbench);
111 callback(external);
112 callback(image);
113#ifdef WITH_DRAW_DEBUG
114 callback(edit_select_debug);
115#endif
117 callback(grease_pencil);
119 callback(compositor);
121 callback(overlay);
122
124 callback(object_select);
125 callback(edit_select);
126 }
127
128 template<typename CallbackT> void foreach_enabled_engine(CallbackT callback)
129 {
131 if (ptr.instance == nullptr || ptr.instance->used == false) {
132 return;
133 }
134 callback(*ptr.instance);
135 });
136 }
137
138 private:
139 void clear(bool free_instance_data);
140};
141
143void DRW_view_data_reset(DRWViewData *view_data);
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
void DRW_view_data_default_lists_from_viewport(DRWViewData *view_data, GPUViewport *viewport)
void DRW_view_data_reset(DRWViewData *view_data)
void DRW_view_data_free_unused(DRWViewData *view_data)
static void clear(Message &msg)
Definition msgfmt.cc:213
VecBase< int32_t, 2 > int2
blender::draw::external::Engine external
void foreach_engine(CallbackT callback)
blender::draw::select::Engine object_select
DefaultTextureList dtxl
blender::Map< std::string, std::unique_ptr< blender::draw::TextureFromPool > > viewport_compositor_passes
DefaultFramebufferList dfbl
blender::draw::Manager * manager
void foreach_enabled_engine(CallbackT callback)
blender::workbench::Engine workbench
blender::draw::compositor_engine::Engine compositor
blender::draw::gpencil::Engine grease_pencil
blender::image_engine::Engine image
blender::draw::overlay::Engine overlay
blender::draw::edit_select::Engine edit_select
blender::eevee::Engine eevee
void texture_list_size_validate(const blender::int2 &size)
blender::int2 texture_list_size
blender::gpu::FrameBuffer * overlay_only_fb
blender::gpu::FrameBuffer * default_fb
blender::gpu::FrameBuffer * color_only_fb
blender::gpu::FrameBuffer * overlay_fb
blender::gpu::FrameBuffer * in_front_fb
blender::gpu::FrameBuffer * depth_only_fb
blender::gpu::Texture * depth
blender::gpu::Texture * color
blender::gpu::Texture * color_overlay
blender::gpu::Texture * depth_in_front
PointerRNA * ptr
Definition wm_files.cc:4238