33 lines
679 B
C++
33 lines
679 B
C++
#ifndef RENDERER_AUTO_SURFACE_RENDER_H
|
|
#define RENDERER_AUTO_SURFACE_RENDER_H
|
|
|
|
|
|
#include "renderer/common/Surface.h"
|
|
|
|
|
|
namespace lime {
|
|
|
|
|
|
class AutoSurfaceRender {
|
|
|
|
public:
|
|
|
|
AutoSurfaceRender (Surface *inSurface) : mSurface (inSurface), mTarget (inSurface->BeginRender (Rect (inSurface->Width (), inSurface->Height ()), false)) {}
|
|
AutoSurfaceRender (Surface *inSurface, const Rect &inRect) : mSurface (inSurface), mTarget (inSurface->BeginRender (inRect, false)) {}
|
|
~AutoSurfaceRender () { mSurface->EndRender (); }
|
|
|
|
const RenderTarget &Target () { return mTarget; }
|
|
|
|
private:
|
|
|
|
Surface *mSurface;
|
|
RenderTarget mTarget;
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|