Add scoped helper to temporarily override current blitter
This commit is contained in:
@@ -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;
|
||||||
|
Reference in New Issue
Block a user