89 const float image_offset[2],
90 const float image_resolution[2],
91 float r_uv_to_texture[4][4])
const override
94 float display_resolution[2];
95 float image_display_offset[2];
96 mul_v2_v2fl(display_resolution, image_resolution, snode->zoom);
97 mul_v2_v2fl(image_display_offset, image_offset, snode->zoom);
98 const float scale_x = display_resolution[0] / region->
winx;
99 const float scale_y = display_resolution[1] / region->
winy;
100 const float translate_x = ((region->
winx - display_resolution[0]) * 0.5f + snode->xof +
101 image_display_offset[0]) /
103 const float translate_y = ((region->
winy - display_resolution[1]) * 0.5f + snode->yof +
104 image_display_offset[1]) /
107 r_uv_to_texture[0][0] = scale_x;
108 r_uv_to_texture[1][1] = scale_y;
109 r_uv_to_texture[3][0] = translate_x;
110 r_uv_to_texture[3][1] = translate_y;
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
Image * BKE_image_ensure_viewer(Main *bmain, int type, const char *name)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
void unit_m4(float m[4][4])
MINLINE void copy_v4_fl4(float v[4], float x, float y, float z, float w)
MINLINE void mul_v2_v2fl(float r[2], const float a[2], float f)
bool IMB_alpha_affects_rgb(const ImBuf *ibuf)
Image * get_image(Main *bmain) override
SpaceNodeAccessor(SpaceNode *snode)
void get_shader_parameters(ShaderParameters &r_shader_parameters, ImBuf *ibuf) override
bool use_tile_drawing() const override
Is (wrap) repeat option enabled in the space.
void release_buffer(Image *image, ImBuf *ibuf, void *lock) override
ImageUser * get_image_user() override
ImBuf * acquire_image_buffer(Image *image, void **lock) override
void init_ss_to_texture_matrix(const ARegion *region, const float image_offset[2], const float image_resolution[2], float r_uv_to_texture[4][4]) const override
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)