28 void set_geometry_shader(
const std::string& geometry_path);
29 void set_tess_control_shader(
const std::string& tess_control_path);
30 void set_tess_eval_shader(
const std::string& tess_eval_path);
31 void set_fragment_shader(
const std::string& fragment_path);
32 void set_target_window(std::shared_ptr<Core::Window> window);
36 void on_attach(
const std::shared_ptr<Buffer>& buffer)
override;
41 m_primitive_topology = topology;
42 m_needs_pipeline_rebuild =
true;
48 m_polygon_mode = mode;
49 m_needs_pipeline_rebuild =
true;
56 m_needs_pipeline_rebuild =
true;
67 const std::shared_ptr<Core::VKImage>& texture,
68 vk::Sampler sampler =
nullptr);
77 const std::string& descriptor_name,
78 const std::shared_ptr<Core::VKImage>& texture,
79 vk::Sampler sampler =
nullptr);
84 bool is_pipeline_ready()
const {
return m_pipeline_id != Portal::Graphics::INVALID_RENDER_PIPELINE; }
87 void initialize_pipeline(
const std::shared_ptr<VKBuffer>& buffer)
override;
88 void execute_shader(
const std::shared_ptr<VKBuffer>& buffer)
override;
89 void initialize_descriptors(
const std::shared_ptr<VKBuffer>& buffer)
override;
93 void cleanup()
override;
98 bool use_reflection {};
std::shared_ptr< Core::VKImage > texture