13#include <fmt/format.h>
73 static void *debug_scope_render_sample;
74 static void *debug_scope_irradiance_setup;
75 static void *debug_scope_irradiance_sample;
78 bool overlays_enabled_ =
false;
80 bool shaders_are_ready_ =
true;
83 std::string info_ =
"";
179 const rcti *output_rect,
180 const rcti *visible_rect,
183 Object *camera_object =
nullptr,
232 template<
typename... Args>
void info_append(
const char *msg, Args &&...args)
234 info_ += fmt::format(msg, args...);
242 std::string fmt_msg = fmt::format(
RPT_(msg), args...) +
"\n";
244 if (info_ != fmt_msg && !
BLI_str_endswith(info_.c_str(), fmt_msg.c_str())) {
251 return info_.c_str();
256 return render ==
nullptr && !
is_baking();
276 return overlays_enabled_;
358 static void object_sync_render(
void *instance_,
366 void render_sample();
371 void update_eval_members();
373 void set_time(
float time);
378 DebugScope(
void *&scope_p,
const char *name)
380 if (scope_p ==
nullptr) {
General operations, lookup, etc. for blender objects.
#define BLI_assert_msg(a, msg)
int bool bool BLI_str_endswith(const char *__restrict str, const char *__restrict end) ATTR_NONNULL(1
#define SET_FLAG_FROM_TEST(value, test, flag)
bool DEG_id_type_any_exists(const Depsgraph *depsgraph, short id_type)
struct ObjectRuntimeHandle ObjectRuntimeHandle
@ V3D_SHADING_SCENE_WORLD_RENDER
@ V3D_SHADING_SCENE_WORLD
@ V3D_SHADING_SCENE_LIGHTS
@ V3D_SHADING_SCENE_LIGHTS_RENDER
void GPU_debug_capture_scope_end(void *scope)
bool GPU_debug_capture_scope_begin(void *scope)
void * GPU_debug_capture_scope_create(const char *name)
A running instance of the engine.
VolumeProbeModule volume_probes
bool use_lookdev_overlay() const
void render_frame(RenderEngine *engine, RenderLayer *render_layer, const char *view_name)
bool use_scene_lights() const
SphereProbeModule sphere_probes
AmbientOcclusion ambient_occlusion
RayTraceModule raytracing
bool use_studio_light() const
void info_append_i18n(const char *msg, Args &&...args)
bool gpencil_engine_enabled() const
bool is_transforming() const
SubsurfaceModule subsurface
bool overlays_enabled() const
Object * camera_eval_object
int get_recalc_flags(const ::World &world)
void light_bake_irradiance(Object &probe, FunctionRef< void()> context_enable, FunctionRef< void()> context_disable, FunctionRef< bool()> stop, FunctionRef< void(LightProbeGridCacheFrame *, float progress)> result_update)
bool needs_lightprobe_sphere_passes() const
int get_recalc_flags(const ObjectRef &ob_ref)
bool needs_planar_probe_passes() const
RenderBuffers render_buffers
const RenderLayer * render_layer
void object_sync(Object *ob)
const RegionView3D * rv3d
bool is_image_render() const
void store_metadata(RenderResult *render_result)
void info_append(const char *msg, Args &&...args)
DepthOfField depth_of_field
PlanarProbeModule planar_probes
bool is_navigating() const
void draw_viewport_image_render()
static void update_passes(RenderEngine *engine, Scene *scene, ViewLayer *view_layer)
bool is_viewport_image_render() const
bool do_lightprobe_sphere_sync() const
UniformDataModule uniform_data
LightProbeModule light_probes
MotionBlurModule motion_blur
void init_light_bake(Depsgraph *depsgraph, draw::Manager *manager)
Object * camera_orig_object
bool do_planar_probe_sync() const
bool DRW_state_is_viewport_image_render()
bool DRW_state_is_image_render()
bool DRW_state_is_painting()
bool DRW_state_is_navigating()
bool DRW_state_is_playback()
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
unsigned __int64 uint64_t
ObjectRuntimeHandle * runtime