Add scoped helper to temporarily override current blitter

This commit is contained in:
Jonathan G Rennison
2024-01-17 23:59:53 +00:00
parent 0e581e0eeb
commit ae701a3bd8

View File

@@ -179,6 +179,21 @@ public:
* Create an instance of this Blitter-class. * Create an instance of this Blitter-class.
*/ */
virtual Blitter *CreateInstance() = 0; virtual Blitter *CreateInstance() = 0;
/* Scoped temporary current blitter override */
struct TemporaryCurrentBlitterOverride {
Blitter *old_blitter;
TemporaryCurrentBlitterOverride(Blitter *new_blitter) : old_blitter(*GetActiveBlitter())
{
*GetActiveBlitter() = new_blitter;
}
~TemporaryCurrentBlitterOverride()
{
*GetActiveBlitter() = this->old_blitter;
}
};
}; };
extern std::string _ini_blitter; extern std::string _ini_blitter;