34 cache_uniform(program.get(), u_wf_params,
"u_wf_params", gfx::uniform_type::Vec4, 3);
38 std::unique_ptr<gpu_program> program;
40 } wireframe_program_, wireframe_program_skinned_;
42 std::unique_ptr<gpu_program> grid_program_;
49 std::unique_ptr<gpu_program> program;
51 } outline_mask_program_, outline_mask_program_skinned_;
57 cache_uniform(program.get(), s_tex,
"s_tex", gfx::uniform_type::Sampler);
58 cache_uniform(program.get(), u_data,
"u_data", gfx::uniform_type::Vec4);
59 cache_uniform(program.get(), u_outline_color,
"u_outline_color", gfx::uniform_type::Vec4);
66 std::unique_ptr<gpu_program> program;
70 void resize_selection_mask_rt(uint16_t
width, uint16_t
height)
72 if(selection_mask_ && selection_mask_->get_size().width ==
width &&
73 selection_mask_->get_size().height ==
height)
78 auto tex = std::make_shared<gfx::texture>(
width,
82 bgfx::TextureFormat::R8,
85 std::vector<gfx::texture::ptr> attachments{tex};
86 selection_mask_ = std::make_shared<gfx::frame_buffer>(attachments);
91 std::shared_ptr<int> sentinel_ = std::make_shared<int>(0);