78 const char *pass_name)
81 pass_name, [&]() {
return std::make_unique<draw::TextureFromPool>(pass_name); });
98 GPU_ATTACHMENT_TEXTURE(dtxl->depth),
99 GPU_ATTACHMENT_TEXTURE(dtxl->color),
103 GPU_ATTACHMENT_TEXTURE(dtxl->depth),
104 GPU_ATTACHMENT_TEXTURE(dtxl->color_overlay),
108 GPU_ATTACHMENT_TEXTURE(dtxl->depth),
114 GPU_ATTACHMENT_TEXTURE(dtxl->color),
119 GPU_ATTACHMENT_TEXTURE(dtxl->color_overlay),
128 for (
int i = 0; data->fbl && i < data_size->
fbl_len; i++) {
131 for (
int i = 0; data->txl && i < data_size->
txl_len; i++) {
134 for (
int i = 0; data->stl && i < data_size->
stl_len; i++) {
138 if (clear_instance_data && data->instance_data) {
141 data->instance_data =
nullptr;
149 if (data->text_draw_cache) {
151 data->text_draw_cache =
nullptr;
194 if (engine.engine_type->draw_engine == engine_type) {
195 if (engine.fbl ==
nullptr) {
198 data_size->
fbl_len,
sizeof(GPUFrameBuffer *),
"FramebufferList");
200 data_size->
txl_len,
sizeof(GPUTexture *),
"TextureList");
204 data_size->
stl_len,
sizeof(
void *),
"StorageList");
222 for (std::unique_ptr<draw::TextureFromPool> &texture :
242 DrawEngineType *draw_engine = engine_data.engine_type->draw_engine;
256 return &view_data->
dfbl;
261 return &view_data->
dtxl;
273 if (iterator->
id >= iterator->
end) {
#define LISTBASE_FOREACH(type, var, list)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
MINLINE bool equals_v2v2_int(const int v1[2], const int v2[2]) ATTR_WARN_UNUSED_RESULT
#define GPU_FRAMEBUFFER_FREE_SAFE(fb)
#define GPU_framebuffer_ensure_config(_fb,...)
#define GPU_TEXTURE_FREE_SAFE(texture)
GPUTexture * GPU_viewport_color_texture(GPUViewport *viewport, int view)
int GPU_viewport_active_view_get(GPUViewport *viewport)
GPUTexture * GPU_viewport_depth_texture(GPUViewport *viewport)
GPUTexture * GPU_viewport_overlay_texture(GPUViewport *viewport, int view)
ValueIterator values() const
Value & lookup_or_add_cb(const Key &key, const CreateValueF &create_value)
void append(const T &value)
void reserve(const int64_t min_capacity)
int64_t first_index_of_try(const T &value) const
void DRW_text_cache_destroy(DRWTextStore *dt)
void DRW_manager_end_sync()
void DRW_view_data_use_engine(DRWViewData *view_data, DrawEngineType *engine_type)
static void draw_view_data_clear(DRWViewData *view_data, bool free_instance_data)
void DRW_view_data_free(DRWViewData *view_data)
void DRW_view_data_default_lists_from_viewport(DRWViewData *view_data, GPUViewport *viewport)
DefaultFramebufferList * DRW_view_data_default_framebuffer_list_get(DRWViewData *view_data)
DefaultTextureList * DRW_view_data_default_texture_list_get(DRWViewData *view_data)
void DRW_view_data_enabled_engine_iter_begin(DRWEngineIterator *iterator, DRWViewData *view_data)
void DRW_view_data_engines_view_update(DRWViewData *view_data)
ViewportEngineData * DRW_view_data_enabled_engine_iter_step(DRWEngineIterator *iterator)
draw::TextureFromPool & DRW_view_data_pass_texture_get(DRWViewData *view_data, const char *pass_name)
double * DRW_view_data_cache_time_get(DRWViewData *view_data)
static void draw_viewport_engines_data_clear(ViewportEngineData *data, bool clear_instance_data)
DRWViewData * DRW_view_data_create(ListBase *engine_types)
draw::ObjectRef DRW_object_ref_get(Object *object)
void DRW_view_data_texture_list_size_validate(DRWViewData *view_data, const int size[2])
draw::Manager * DRW_manager_get()
void DRW_view_data_reset(DRWViewData *view_data)
void DRW_manager_begin_sync()
ViewportEngineData * DRW_view_data_engine_data_get_ensure(DRWViewData *view_data, DrawEngineType *engine_type)
void DRW_view_data_free_unused(DRWViewData *view_data)
void *(* MEM_calloc_arrayN)(size_t len, size_t size, const char *str)
ViewportEngineData ** engines
DupliObject * dupli_source
DRWViewData * view_data_active
Vector< ViewportEngineData * > enabled_engines
DefaultFramebufferList dfbl
Vector< ViewportEngineData > engines
Map< std::string, std::unique_ptr< draw::TextureFromPool > > viewport_compositor_passes
GPUFrameBuffer * depth_only_fb
GPUFrameBuffer * overlay_fb
GPUFrameBuffer * color_only_fb
GPUFrameBuffer * in_front_fb
GPUFrameBuffer * overlay_only_fb
GPUFrameBuffer * default_fb
GPUTexture * depth_in_front
GPUTexture * color_overlay
void(* instance_free)(void *instance_data)
const DrawEngineDataSize * vedata_size
void(* view_update)(void *vedata)
DRWRegisteredDrawEngine * engine_type