| 211 | } |
| 212 | |
| 213 | void wf::render_buffer_t::do_blit(wlr_texture *src_wlr_tex, wlr_fbox src_box, |
| 214 | wf::geometry_t dst_box, wlr_scale_filter_mode filter_mode) const |
| 215 | { |
| 216 | auto renderer = wf::get_core().renderer; |
| 217 | auto target_buffer = this->get_buffer(); |
| 218 | |
| 219 | if (!target_buffer) |
| 220 | { |
| 221 | LOGE("Cannot copy to unallocated render buffer!"); |
| 222 | return; |
| 223 | } |
| 224 | |
| 225 | wlr_render_pass *pass = wlr_renderer_begin_buffer_pass(renderer, target_buffer, NULL); |
| 226 | if (!pass) |
| 227 | { |
| 228 | LOGE("Failed to start wlr render pass for render buffer copy!"); |
| 229 | return; |
| 230 | } |
| 231 | |
| 232 | wlr_render_texture_options opts{}; |
| 233 | opts.texture = src_wlr_tex; |
| 234 | opts.alpha = NULL; |
| 235 | opts.blend_mode = WLR_RENDER_BLEND_MODE_NONE; |
| 236 | opts.filter_mode = filter_mode; |
| 237 | opts.transform = WL_OUTPUT_TRANSFORM_NORMAL; |
| 238 | opts.clip = NULL; |
| 239 | opts.src_box = src_box; |
| 240 | opts.dst_box = dst_box; |
| 241 | wlr_render_pass_add_texture(pass, &opts); |
| 242 | if (!wlr_render_pass_submit(pass)) |
| 243 | { |
| 244 | LOGE("Blit to render buffer failed!"); |
| 245 | } |
| 246 | } |
| 247 | |
| 248 | void wf::render_buffer_t::blit(wf::auxilliary_buffer_t& source, wlr_fbox src_box, |
| 249 | wf::geometry_t dst_box, wlr_scale_filter_mode filter_mode) const |
nothing calls this directly
no test coverage detected