Blender
V3.3
|
#include "DRW_render.h"
#include "DNA_modifier_types.h"
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
#include "BKE_object.h"
#include "BKE_particle.h"
#include "ED_image.h"
#include "ED_screen.h"
#include "GPU_batch.h"
#include "GPU_debug.h"
#include "GPU_matrix.h"
#include "GPU_shader.h"
#include "GPU_state.h"
#include "GPU_viewport.h"
#include "RE_engine.h"
#include "RE_pipeline.h"
#include "external_engine.h"
Go to the source code of this file.
Classes | |
struct | EXTERNAL_Storage |
struct | EXTERNAL_StorageList |
struct | EXTERNAL_FramebufferList |
struct | EXTERNAL_TextureList |
struct | EXTERNAL_PassList |
struct | EXTERNAL_Data |
struct | EXTERNAL_PrivateData |
Macros | |
#define | EXTERNAL_ENGINE "BLENDER_EXTERNAL" |
Typedefs | |
typedef struct EXTERNAL_Storage | EXTERNAL_Storage |
typedef struct EXTERNAL_StorageList | EXTERNAL_StorageList |
typedef struct EXTERNAL_FramebufferList | EXTERNAL_FramebufferList |
typedef struct EXTERNAL_TextureList | EXTERNAL_TextureList |
typedef struct EXTERNAL_PassList | EXTERNAL_PassList |
typedef struct EXTERNAL_Data | EXTERNAL_Data |
typedef struct EXTERNAL_PrivateData | EXTERNAL_PrivateData |
Functions | |
static void | external_engine_init (void *vedata) |
static void | external_cache_image_add (DRWShadingGroup *grp) |
static void | external_cache_init (void *vedata) |
static void | external_cache_populate (void *vedata, Object *ob) |
static void | external_cache_finish (void *UNUSED(vedata)) |
static void | external_draw_scene_do_v3d (void *vedata) |
static void | external_image_space_matrix_set (const RenderEngine *engine) |
static void | external_draw_scene_do_image (void *UNUSED(vedata)) |
static void | external_draw_scene_do (void *vedata) |
static void | external_draw_scene (void *vedata) |
static void | external_engine_free (void) |
bool | DRW_engine_external_acquire_for_image_editor (void) |
Variables | |
char | datatoc_basic_depth_frag_glsl [] |
char | datatoc_basic_depth_vert_glsl [] |
char | datatoc_common_view_lib_glsl [] |
struct { | |
struct GPUShader * depth_sh | |
} | e_data = {NULL} |
static const DrawEngineDataSize | external_data_size = DRW_VIEWPORT_DATA_SIZE(EXTERNAL_Data) |
DrawEngineType | draw_engine_external_type |
RenderEngineType | DRW_engine_viewport_external_type |
Base engine for external render engines. We use it for depth and non-mesh objects.
Definition in file external_engine.c.
#define EXTERNAL_ENGINE "BLENDER_EXTERNAL" |
Definition at line 37 of file external_engine.c.
typedef struct EXTERNAL_Data EXTERNAL_Data |
typedef struct EXTERNAL_FramebufferList EXTERNAL_FramebufferList |
typedef struct EXTERNAL_PassList EXTERNAL_PassList |
typedef struct EXTERNAL_PrivateData EXTERNAL_PrivateData |
typedef struct EXTERNAL_Storage EXTERNAL_Storage |
typedef struct EXTERNAL_StorageList EXTERNAL_StorageList |
typedef struct EXTERNAL_TextureList EXTERNAL_TextureList |
Definition at line 466 of file external_engine.c.
References DRW_context_state_get(), ED_space_image(), IMA_TYPE_R_RESULT, image(), NULL, RE_engine_draw_acquire(), RE_GetSceneRender(), scene, DRWContextState::scene, DRWContextState::space_data, SPACE_IMAGE, and SpaceLink::spacetype.
Referenced by drw_engine_enable_image_editor().
Definition at line 229 of file external_engine.c.
|
static |
Definition at line 127 of file external_engine.c.
References DRW_cache_quad_get(), DRW_shgroup_call_obmat, GPUBatch, scale_m4_fl(), translate_m4(), and unit_m4().
Referenced by external_cache_init().
Definition at line 141 of file external_engine.c.
References EXTERNAL_FramebufferList::depth_buffer_fb, EXTERNAL_TextureList::depth_buffer_tx, EXTERNAL_PassList::depth_pass, EXTERNAL_PrivateData::depth_shgrp, DRW_context_state_get(), DRW_pass_create(), DRW_shgroup_create(), DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_WRITE_DEPTH, DRW_texture_ensure_fullscreen_2d(), e_data, external_cache_image_add(), View3D::flag2, EXTERNAL_StorageList::g_data, GPU_DEPTH24_STENCIL8, EXTERNAL_PrivateData::need_depth, NULL, DRWContextState::space_data, SPACE_IMAGE, SpaceLink::spacetype, EXTERNAL_PrivateData::update_depth, DRWContextState::v3d, and V3D_HIDE_OVERLAYS.
Definition at line 181 of file external_engine.c.
References EXTERNAL_PrivateData::depth_shgrp, ParticleSettings::draw_as, DRW_cache_object_surface_get(), DRW_cache_particles_get_hair(), DRW_context_state_get(), DRW_object_is_renderable(), DRW_object_is_visible_psys_in_active_context(), DRW_object_visibility_in_active_context(), DRW_shgroup_call, eModifierType_ParticleSystem, ListBase::first, EXTERNAL_StorageList::g_data, GPUBatch, if(), LISTBASE_FOREACH, Object::modifiers, EXTERNAL_PrivateData::need_depth, NULL, OB_GPENCIL, OB_MESH, OB_VISIBLE_SELF, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, ParticleSettings::ren_as, DRWContextState::space_data, SPACE_IMAGE, SpaceLink::spacetype, and Object::type.
Definition at line 388 of file external_engine.c.
References DefaultFramebufferList::default_fb, EXTERNAL_FramebufferList::depth_buffer_fb, DefaultFramebufferList::depth_only_fb, EXTERNAL_PassList::depth_pass, DRW_context_state_get(), DRW_draw_pass(), DRW_viewport_framebuffer_list_get(), DRWContextState::evil_C, external_draw_scene_do(), EXTERNAL_StorageList::g_data, GPU_DEPTH_BIT, GPU_framebuffer_bind(), GPU_framebuffer_blit(), EXTERNAL_PrivateData::need_depth, and EXTERNAL_PrivateData::update_depth.
Definition at line 368 of file external_engine.c.
References DRW_context_state_get(), external_draw_scene_do_image(), external_draw_scene_do_v3d(), NULL, DRWContextState::space_data, SPACE_IMAGE, SpaceLink::spacetype, and DRWContextState::v3d.
Referenced by external_draw_scene().
Definition at line 324 of file external_engine.c.
References BLI_assert, DefaultFramebufferList::default_fb, DRWContextState::depsgraph, RenderEngineType::draw, DRW_context_state_get(), DRW_state_reset(), DRW_viewport_framebuffer_list_get(), DRWContextState::evil_C, external_image_space_matrix_set(), GPU_bgl_end(), GPU_debug_group_begin(), GPU_debug_group_end(), GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), NULL, RE_engine_draw_release(), RE_engine_get(), RE_GetSceneRender(), scene, DRWContextState::scene, and RenderEngine::type.
Referenced by external_draw_scene_do().
Definition at line 233 of file external_engine.c.
References BLI_strncpy(), data, DRWContextState::depsgraph, DRW_context_state_get(), DRW_STATE_DEFAULT, DRW_STATE_DEPTH_LESS_EQUAL, DRW_state_reset_ex(), ED_region_pixelspace(), DRWContextState::engine_type, DRWContextState::evil_C, GPU_bgl_end(), GPU_matrix_pop(), GPU_matrix_pop_projection(), GPU_matrix_push(), GPU_matrix_push_projection(), RE_engine_create(), DRWContextState::region, RegionView3D::render_engine, DRWContextState::rv3d, RenderEngine::text, type, RenderEngine::type, RenderEngineType::view_draw, and RenderEngineType::view_update.
Referenced by external_draw_scene_do().
Definition at line 419 of file external_engine.c.
References DRW_SHADER_FREE_SAFE, and e_data.
Definition at line 98 of file external_engine.c.
References ARegion::do_draw, DRW_context_state_get(), e_data, EXTERNAL_StorageList::g_data, GPU_shader_create_from_info_name(), MEM_mallocN, EXTERNAL_PrivateData::need_depth, DRWContextState::region, RGN_DRAW_NO_REBUILD, and EXTERNAL_PrivateData::update_depth.
|
static |
Definition at line 283 of file external_engine.c.
References BLI_assert, DRW_context_state_get(), DRW_view_get_active(), DRW_view_viewmat_get(), DRW_view_winmat_get(), ED_space_image_get_size(), GPU_matrix_projection_set, GPU_matrix_scale_2f(), GPU_matrix_set, GPU_matrix_translate_2f(), height, NULL, RenderEngine::re, RE_GetViewPlane(), DRWContextState::space_data, view, width, rcti::xmin, and rcti::ymin.
Referenced by external_draw_scene_do_image().
|
extern |
|
extern |
|
extern |
Definition at line 43 of file intern/ghost/test/multitest/stubs.c.
struct GPUShader* depth_sh |
Definition at line 85 of file external_engine.c.
DrawEngineType draw_engine_external_type |
Definition at line 426 of file external_engine.c.
Referenced by drw_engine_enable_image_editor().
RenderEngineType DRW_engine_viewport_external_type |
struct { ... } e_data |
Referenced by external_cache_init(), external_engine_free(), and external_engine_init().
|
static |
Definition at line 424 of file external_engine.c.