using System;
using System.Runtime.InteropServices;
using System.Security;
using SFML.Window;
namespace SFML
{
namespace Graphics
{
////////////////////////////////////////////////////////////
///
/// Abstract base class for render targets (renderwindow, renderimage)
///
////////////////////////////////////////////////////////////
public interface RenderTarget
{
////////////////////////////////////////////////////////////
///
/// Width of the rendering region of the window
///
////////////////////////////////////////////////////////////
uint Width {get;}
////////////////////////////////////////////////////////////
///
/// Height of the rendering region of the window
///
////////////////////////////////////////////////////////////
uint Height {get;}
////////////////////////////////////////////////////////////
///
/// Default view of the window
///
////////////////////////////////////////////////////////////
View DefaultView {get;}
////////////////////////////////////////////////////////////
///
/// Current view active in the window
///
////////////////////////////////////////////////////////////
View CurrentView {get;}
////////////////////////////////////////////////////////////
///
/// Tell SFML to preserve external OpenGL states, at the expense of
/// more CPU charge. Use this function if you don't want SFML
/// to mess up your own OpenGL states (if any).
/// Don't enable state preservation if not needed, as it will allow
/// SFML to do internal optimizations and improve performances.
/// This parameter is false by default
///
/// True to preserve OpenGL states, false to let SFML optimize
////////////////////////////////////////////////////////////
void PreserveOpenGLStates(bool preserve);
////////////////////////////////////////////////////////////
///
/// Clear the entire window with black color
///
////////////////////////////////////////////////////////////
void Clear();
////////////////////////////////////////////////////////////
///
/// Clear the entire window with a single color
///
/// Color to use to clear the window
////////////////////////////////////////////////////////////
void Clear(Color color);
////////////////////////////////////////////////////////////
///
/// Draw something into the window
///
/// Object to draw
////////////////////////////////////////////////////////////
void Draw(Drawable objectToDraw);
////////////////////////////////////////////////////////////
///
/// Apply a post-fx to the window
///
/// PostFx to apply
////////////////////////////////////////////////////////////
void Draw(PostFx postFx);
}
}
}