// AUTOGENERATED COPYRIGHT HEADER START // Copyright (C) 2019-2023 Michael Fabian 'Xaymar' Dirks // Copyright (C) 2022 lainon // AUTOGENERATED COPYRIGHT HEADER END #pragma once #include "common.hpp" #include "gs-effect-parameter.hpp" namespace streamfx::obs::gs { class effect_pass : public std::shared_ptr { std::shared_ptr _parent; public: effect_pass(gs_epass_t* pass, std::shared_ptr parent = nullptr); ~effect_pass(); std::string name(); //gs::shader get_pixel_shader(); //gs::shader get_vertex_shader(); // std::size_t count_vertex_parameters(); streamfx::obs::gs::effect_parameter get_vertex_parameter(std::size_t idx); streamfx::obs::gs::effect_parameter get_vertex_parameter(std::string_view name); bool has_vertex_parameter(std::string_view name); bool has_vertex_parameter(std::string_view name, streamfx::obs::gs::effect_parameter::type type); std::size_t count_pixel_parameters(); streamfx::obs::gs::effect_parameter get_pixel_parameter(std::size_t idx); streamfx::obs::gs::effect_parameter get_pixel_parameter(std::string_view name); bool has_pixel_parameter(std::string_view name); bool has_pixel_parameter(std::string_view name, streamfx::obs::gs::effect_parameter::type type); }; } // namespace streamfx::obs::gs