--- /dev/null
+#ifndef MSP_GL_RENDERPASS_H_
+#define MSP_GL_RENDERPASS_H_
+
+#include <vector>
+#include "handles.h"
+
+namespace Msp {
+namespace GL {
+
+class Device;
+class Framebuffer;
+union ClearValue;
+
+struct RenderPass
+{
+ const Framebuffer *framebuffer = 0;
+ Rect render_area;
+ bool clear = false;
+ const ClearValue *clear_values = 0;
+ bool to_present = false;
+ bool discard_fb_contents = false;
+ VkRenderPass handle = 0;
+
+ void update(Device &);
+
+ std::uint64_t compute_hash() const;
+ bool discards_framebuffer_contents() const;
+ void fill_creation_info(std::vector<char> &) const;
+ void fill_begin_info(std::vector<char> &) const;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif