The TagStateManager stores a list of
RenderStatesassigned to different steps in the pipeline. For example, there are a list of shadow states, which are applied whenever objects are rendered from a shadow camera.
The Manager also stores a list of all cameras used in the different stages, to keep track of the states used and to be able to attach new states.
TagStateManager(TagStateManager const&) = default
This constructs a new
TagStateManager. The #main_cam_node should refer to the main scene camera, and will most likely be base.cam. It is necessary to pass the camera because the C++ code does not have access to the showbase.
void apply_state(std::string const &state, NodePath np, Shader *shader, std::string const &name, int sort)
BitMask32 get_mask(std::string const &container_name)
This returns the mask of a given render pass, which can be used to either show or hide objects from this pass.
void register_camera(std::string const &state, Camera *source)
This registers a new camera which will be used to render the given pass. The
TagStateManagerwill keep track of the camera and applies all registered states onto the camera with
Camera::set_tag_state(). It also applies the appropriate camera mask to the camera, and sets an initial state to disable color write depending on the pass.
This registers a new camera to a container, and sets its initial state as well as the camera mask.
void unregister_camera(std::string const &state, Camera *source)
This unregisters a camera from the list of shadows cameras. It also resets all tag states of the camera, and also its initial state.
This unregisters a camera from the list of cameras of a given container. It also resets all tag states of the camera, and also its initial state.
- TagStateManager(TagStateManager const&) = default