Updated CSFML and SFML.Net in the sfml2 branch

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1233 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
LaurentGom 2009-10-12 10:24:49 +00:00
parent fc22927874
commit 7f4de9033c
15 changed files with 164 additions and 42 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -16,6 +16,9 @@ namespace sample_opengl
// Create main window
RenderWindow window = new RenderWindow(new VideoMode(800, 600), "SFML.Net OpenGL");
// Activate it as the target for OpenGL calls
window.SetActive();
// Setup event handlers
window.Closed += new EventHandler(OnClosed);
window.KeyPressed += new EventHandler<KeyEventArgs>(OnKeyPressed);
@ -72,6 +75,13 @@ namespace sample_opengl
// Draw background
window.Draw(background);
// Flush the window, to make sure that our OpenGL cube
// will be rendered on top of the background sprite
window.Flush();
// Activate the window for OpenGL calls
window.SetActive();
// Clear depth buffer
Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT);
@ -159,6 +169,8 @@ namespace sample_opengl
/// </summary>
static void OnResized(object sender, SizeEventArgs e)
{
RenderWindow window = (RenderWindow)sender;
window.SetActive();
Gl.glViewport(0, 0, (int)e.Width, (int)e.Height);
}
}

View file

@ -15,6 +15,9 @@ namespace sample_window
// Create the main window
Window window = new Window(new VideoMode(640, 480, 32), "SFML.Net Window");
// Activate it as the target for OpenGL calls
window.SetActive();
// Setup event handlers
window.Closed += new EventHandler(OnClosed);
window.KeyPressed += new EventHandler<KeyEventArgs>(OnKeyPressed);
@ -42,8 +45,6 @@ namespace sample_window
window.DispatchEvents();
// Set the active window before using OpenGL commands
// It's useless here because the active window is always the same,
// but don't forget it if you use multiple windows
window.SetActive();
// Clear color and depth buffer
@ -128,6 +129,8 @@ namespace sample_window
/// </summary>
static void OnResized(object sender, SizeEventArgs e)
{
Window window = (Window)sender;
window.SetActive();
Gl.glViewport(0, 0, (int)e.Width, (int)e.Height);
}
}

View file

@ -191,6 +191,26 @@ namespace SFML
sfRenderImage_DrawPostFX(This, postFx != null ? postFx.This : IntPtr.Zero);
}
////////////////////////////////////////////////////////////
/// <summary>
/// Make sure that what has been drawn so far is rendered.
///
/// Use this function if you use OpenGL rendering commands,
/// and you want to make sure that things will appear on top
/// of all the SFML objects that have been drawn so far.
/// This is needed because SFML doesn't use immediate rendering,
/// it first accumulates drawables into a queue and
/// trigger the actual rendering afterwards.
///
/// You don't need to call this function if you're not
/// dealing with OpenGL directly.
/// </summary>
////////////////////////////////////////////////////////////
public void Flush()
{
sfRenderImage_Flush(This);
}
////////////////////////////////////////////////////////////
/// <summary>
/// Target image of the render image
@ -257,6 +277,9 @@ namespace SFML
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern bool sfRenderImage_SetActive(IntPtr This, bool Active);
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern bool sfRenderImage_Flush(IntPtr This);
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern void sfRenderImage_SetView(IntPtr This, IntPtr View);

View file

@ -59,7 +59,6 @@ namespace SFML
/// <param name="x">X coordinate of the point to convert, relative to the target</param>
/// <param name="y">Y coordinate of the point to convert, relative to the target</param>
/// <returns>Converted point</returns>
///
////////////////////////////////////////////////////////////
Vector2 ConvertCoords(uint x, uint y);
@ -72,7 +71,6 @@ namespace SFML
/// <param name="y">Y coordinate of the point to convert, relative to the target</param>
/// <param name="view">Target view to convert the point to</param>
/// <returns>Converted point</returns>
///
////////////////////////////////////////////////////////////
Vector2 ConvertCoords(uint x, uint y, View view);
@ -106,6 +104,23 @@ namespace SFML
/// <param name="postFx">PostFx to apply</param>
////////////////////////////////////////////////////////////
void Draw(PostFx postFx);
////////////////////////////////////////////////////////////
/// <summary>
/// Make sure that what has been drawn so far is rendered.
///
/// Use this function if you use OpenGL rendering commands,
/// and you want to make sure that things will appear on top
/// of all the SFML objects that have been drawn so far.
/// This is needed because SFML doesn't use immediate rendering,
/// it first accumulates drawables into a queue and
/// trigger the actual rendering afterwards.
///
/// You don't need to call this function if you're not
/// dealing with OpenGL directly.
/// </summary>
////////////////////////////////////////////////////////////
void Flush();
}
}
}

View file

@ -382,17 +382,6 @@ namespace SFML
sfRenderWindow_Clear(This, color);
}
////////////////////////////////////////////////////////////
/// <summary>
/// Save the content of the window to an image
/// </summary>
/// <returns>Image instance containing the contents of the screen</returns>
////////////////////////////////////////////////////////////
public Image Capture()
{
return new Image(sfRenderWindow_Capture(This));
}
////////////////////////////////////////////////////////////
/// <summary>
/// Draw something into the window
@ -415,6 +404,26 @@ namespace SFML
sfRenderWindow_DrawPostFX(This, postFx != null ? postFx.This : IntPtr.Zero);
}
////////////////////////////////////////////////////////////
/// <summary>
/// Make sure that what has been drawn so far is rendered.
///
/// Use this function if you use OpenGL rendering commands,
/// and you want to make sure that things will appear on top
/// of all the SFML objects that have been drawn so far.
/// This is needed because SFML doesn't use immediate rendering,
/// it first accumulates drawables into a queue and
/// trigger the actual rendering afterwards.
///
/// You don't need to call this function if you're not
/// dealing with OpenGL directly.
/// </summary>
////////////////////////////////////////////////////////////
public void Flush()
{
sfRenderWindow_Flush(This);
}
////////////////////////////////////////////////////////////
/// <summary>
/// Internal function to get the next event
@ -524,6 +533,9 @@ namespace SFML
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern bool sfRenderWindow_SetActive(IntPtr This, bool Active);
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern bool sfRenderWindow_Flush(IntPtr This);
[DllImport("csfml-graphics"), SuppressUnmanagedCodeSecurity]
static extern void sfRenderWindow_SetFramerateLimit(IntPtr This, uint Limit);

View file

@ -57,7 +57,7 @@ namespace SFML
////////////////////////////////////////////////////////////
/// <summary>
/// Get the number of valid video modes
/// <summary>
/// </summary>
////////////////////////////////////////////////////////////
public static uint ModesCount
{
@ -81,7 +81,7 @@ namespace SFML
////////////////////////////////////////////////////////////
/// <summary>
/// Get the current desktop video mode
/// <summary>
/// </summary>
////////////////////////////////////////////////////////////
public static VideoMode DesktopMode
{