29 std::unique_ptr<gpu_program> wireframe_program_;
30 std::unique_ptr<gpu_program> grid_program_;
37 std::unique_ptr<gpu_program> program;
39 } outline_mask_program_, outline_mask_program_skinned_;
45 cache_uniform(program.get(), s_tex,
"s_tex", gfx::uniform_type::Sampler);
46 cache_uniform(program.get(), u_data,
"u_data", gfx::uniform_type::Vec4);
47 cache_uniform(program.get(), u_outline_color,
"u_outline_color", gfx::uniform_type::Vec4);
54 std::unique_ptr<gpu_program> program;
58 void resize_selection_mask_rt(uint16_t width, uint16_t height)
60 if(selection_mask_ && selection_mask_->get_size().width == width &&
61 selection_mask_->get_size().height == height)
66 auto tex = std::make_shared<gfx::texture>(width,
70 bgfx::TextureFormat::R8,
73 std::vector<gfx::texture::ptr> attachments{tex};
74 selection_mask_ = std::make_shared<gfx::frame_buffer>(attachments);
79 std::shared_ptr<int> sentinel_ = std::make_shared<int>(0);