29 return std::make_unique<SpaceImageAccessor>(
30 static_cast<SpaceImage *
>(
static_cast<void *
>(space_link)));
33 return std::make_unique<SpaceNodeAccessor>(
34 static_cast<SpaceNode *
>(
static_cast<void *
>(space_link)));
42 std::unique_ptr<AbstractSpaceAccessor> space_;
66 region = ctx_state->
region;
77 0.0f,
float(region->
winx), 0.0f,
float(region->
winy), 0.0f, 1.0f);
79 state.view.sync(viewmat, winmat);
80 state.flags.do_tile_drawing =
false;
87 state.image = space_->get_image(main_);
88 if (
state.image ==
nullptr) {
93 space_->use_tile_drawing();
95 ImBuf *image_buffer = space_->acquire_image_buffer(
state.image, &
lock);
98 float image_resolution[2] = {image_buffer ? image_buffer->
x : 1024.0f,
99 image_buffer ? image_buffer->
y : 1024.0f};
100 space_->init_ss_to_texture_matrix(
101 region,
state.image->
runtime->backdrop_offset, image_resolution,
state.ss_to_texture);
105 space_->release_buffer(
state.image, image_buffer,
lock);
107 ImageUser *iuser = space_->get_image_user();
108 if (
state.image->rr !=
nullptr) {
126 state.image =
nullptr;
Main * CTX_data_main(const bContext *C)
RenderPass * BKE_image_multilayer_index(RenderResult *rr, ImageUser *iuser)
void BKE_image_multiview_index(const Image *ima, ImageUser *iuser)
#define BLI_assert_unreachable()
void DRW_submission_end()
void DRW_submission_start()
A running instance of the engine.
void object_sync(ObjectRef &, Manager &) final
virtual ~Instance()=default
void draw(Manager &) final
StringRefNull name_get() final
void draw_finish() const override
void draw_viewport() const override
void begin_sync() const override
void image_sync(::Image *image, ::ImageUser *iuser) const override
const DRWContext * DRW_context_get()
blender::draw::Manager * DRW_manager_get()
static std::unique_ptr< AbstractSpaceAccessor > space_accessor_from_space(SpaceLink *space_link)
MatBase< T, 4, 4 > orthographic(T left, T right, T bottom, T top, T near_clip, T far_clip)
Create an orthographic projection matrix using OpenGL coordinate convention: Maps each axis range to ...
ARegionRuntimeHandle * runtime
bool update(Progress &progress)
static MatBase identity()