MCPcopy Create free account
hub / github.com/WayfireWM/wayfire / do_blit

Method do_blit

src/render.cpp:213–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211}
212
213void 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
248void 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

Callers

nothing calls this directly

Calls 1

get_bufferMethod · 0.95

Tested by

no test coverage detected