RenderWindow#

Functions

sfRenderWindow *sfRenderWindow_create(sfVideoMode mode, const char *title, sfUint32 style, const sfContextSettings *settings)#

Construct a new render window.

Parameters:
  • mode – Video mode to use

  • title – Title of the window

  • style – Window style

  • settings – Creation settings (pass NULL to use default values)

sfRenderWindow *sfRenderWindow_createUnicode(sfVideoMode mode, const sfUint32 *title, sfUint32 style, const sfContextSettings *settings)#

Construct a new render window (with a UTF-32 title)

Parameters:
  • mode – Video mode to use

  • title – Title of the window (UTF-32)

  • style – Window style

  • settings – Creation settings (pass NULL to use default values)

sfRenderWindow *sfRenderWindow_createFromHandle(sfWindowHandle handle, const sfContextSettings *settings)#

Construct a render window from an existing control.

Parameters:
  • handle – Platform-specific handle of the control

  • settings – Creation settings (pass NULL to use default values)

void sfRenderWindow_destroy(sfRenderWindow *renderWindow)#

Destroy an existing render window.

Parameters:
  • renderWindow – Render window to destroy

void sfRenderWindow_close(sfRenderWindow *renderWindow)#

Close a render window (but doesn’t destroy the internal data)

Parameters:
  • renderWindow – Render window to close

sfBool sfRenderWindow_isOpen(const sfRenderWindow *renderWindow)#

Tell whether or not a render window is opened.

Parameters:
  • renderWindow – Render window object

sfContextSettings sfRenderWindow_getSettings(const sfRenderWindow *renderWindow)#

Get the creation settings of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Settings used to create the window

sfBool sfRenderWindow_pollEvent(sfRenderWindow *renderWindow, sfEvent *event)#

Get the event on top of event queue of a render window, if any, and pop it.

Parameters:
  • renderWindow – Render window object

  • event – Event to fill, if any

Returns:

sfTrue if an event was returned, sfFalse if event queue was empty

sfBool sfRenderWindow_waitEvent(sfRenderWindow *renderWindow, sfEvent *event)#

Wait for an event and return it.

Parameters:
  • renderWindow – Render window object

  • event – Event to fill

Returns:

sfFalse if an error occured

sfVector2i sfRenderWindow_getPosition(const sfRenderWindow *renderWindow)#

Get the position of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Position in pixels

void sfRenderWindow_setPosition(sfRenderWindow *renderWindow, sfVector2i position)#

Change the position of a render window on screen.

Only works for top-level windows

Parameters:
  • renderWindow – Render window object

  • position – New position, in pixels

sfVector2u sfRenderWindow_getSize(const sfRenderWindow *renderWindow)#

Get the size of the rendering region of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Size in pixels

void sfRenderWindow_setSize(sfRenderWindow *renderWindow, sfVector2u size)#

Change the size of the rendering region of a render window.

Parameters:
  • renderWindow – Render window object

  • size – New size, in pixels

void sfRenderWindow_setTitle(sfRenderWindow *renderWindow, const char *title)#

Change the title of a render window.

Parameters:
  • renderWindow – Render window object

  • title – New title

void sfRenderWindow_setUnicodeTitle(sfRenderWindow *renderWindow, const sfUint32 *title)#

Change the title of a render window (with a UTF-32 string)

Parameters:
  • renderWindow – Render window object

  • title – New title

void sfRenderWindow_setIcon(sfRenderWindow *renderWindow, unsigned int width, unsigned int height, const sfUint8 *pixels)#

Change a render window’s icon.

Parameters:
  • renderWindow – Render window object

  • width – Icon’s width, in pixels

  • height – Icon’s height, in pixels

  • pixels – Pointer to the pixels in memory, format must be RGBA 32 bits

void sfRenderWindow_setVisible(sfRenderWindow *renderWindow, sfBool visible)#

Show or hide a render window.

Parameters:
  • renderWindow – Render window object

  • visible – sfTrue to show the window, sfFalse to hide it

void sfRenderWindow_setVerticalSyncEnabled(sfRenderWindow *renderWindow, sfBool enabled)#

Enable / disable vertical synchronization on a render window.

Parameters:
  • renderWindow – Render window object

  • enabled – sfTrue to enable v-sync, sfFalse to deactivate

void sfRenderWindow_setMouseCursorVisible(sfRenderWindow *renderWindow, sfBool show)#

Show or hide the mouse cursor on a render window.

Parameters:
  • renderWindow – Render window object

  • show – sfTrue to show, sfFalse to hide

void sfRenderWindow_setMouseCursorGrabbed(sfRenderWindow *renderWindow, sfBool grabbed)#

Grab or release the mouse cursor.

If set, grabs the mouse cursor inside this window’s client area so it may no longer be moved outside its bounds. Note that grabbing is only active while the window has focus and calling this function for fullscreen windows won’t have any effect (fullscreen windows always grab the cursor).

Parameters:
  • grabbed – sfTrue to enable, sfFalse to disable

void sfRenderWindow_setMouseCursor(sfRenderWindow *window, const sfCursor *cursor)#

Set the displayed cursor to a native system cursor.

Upon window creation, the arrow cursor is used by default.

See also

sfCursor_createFromSystem

See also

sfCursor_createFromPixels

Warning

The cursor must not be destroyed while in use by the window.

Warning

Features related to Cursor are not supported on iOS and Android.

Parameters:
  • cursor – Native system cursor type to display

void sfRenderWindow_setKeyRepeatEnabled(sfRenderWindow *renderWindow, sfBool enabled)#

Enable or disable automatic key-repeat for keydown events.

Automatic key-repeat is enabled by default

Parameters:
  • renderWindow – Render window object

  • enabled – sfTrue to enable, sfFalse to disable

void sfRenderWindow_setFramerateLimit(sfRenderWindow *renderWindow, unsigned int limit)#

Limit the framerate to a maximum fixed frequency for a render window.

Parameters:
  • renderWindow – Render window object

  • limit – Framerate limit, in frames per seconds (use 0 to disable limit)

void sfRenderWindow_setJoystickThreshold(sfRenderWindow *renderWindow, float threshold)#

Change the joystick threshold, ie.

the value below which no move event will be generated

Parameters:
  • renderWindow – Render window object

  • threshold – New threshold, in range [0, 100]

sfBool sfRenderWindow_setActive(sfRenderWindow *renderWindow, sfBool active)#

Activate or deactivate a render window as the current target for rendering.

Parameters:
  • renderWindow – Render window object

  • active – sfTrue to activate, sfFalse to deactivate

Returns:

True if operation was successful, false otherwise

void sfRenderWindow_requestFocus(sfRenderWindow *renderWindow)#

Request the current render window to be made the active foreground window.

At any given time, only one window may have the input focus to receive input events such as keystrokes or mouse events. If a window requests focus, it only hints to the operating system, that it would like to be focused. The operating system is free to deny the request. This is not to be confused with sfWindow_setActive().

sfBool sfRenderWindow_hasFocus(const sfRenderWindow *renderWindow)#

Check whether the render window has the input focus.

At any given time, only one window may have the input focus to receive input events such as keystrokes or most mouse events.

Returns:

True if window has focus, false otherwise

void sfRenderWindow_display(sfRenderWindow *renderWindow)#

Display a render window on screen.

Parameters:
  • renderWindow – Render window object

sfWindowHandle sfRenderWindow_getSystemHandle(const sfRenderWindow *renderWindow)#

Retrieve the OS-specific handle of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Window handle

void sfRenderWindow_clear(sfRenderWindow *renderWindow, sfColor color)#

Clear a render window with the given color.

Parameters:
  • renderWindow – Render window object

  • color – Fill color

void sfRenderWindow_setView(sfRenderWindow *renderWindow, const sfView *view)#

Change the current active view of a render window.

Parameters:
  • renderWindow – Render window object

  • view – Pointer to the new view

const sfView *sfRenderWindow_getView(const sfRenderWindow *renderWindow)#

Get the current active view of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Current active view

const sfView *sfRenderWindow_getDefaultView(const sfRenderWindow *renderWindow)#

Get the default view of a render window.

Parameters:
  • renderWindow – Render window object

Returns:

Default view of the render window

sfIntRect sfRenderWindow_getViewport(const sfRenderWindow *renderWindow, const sfView *view)#

Get the viewport of a view applied to this target.

Parameters:
  • renderWindow – Render window object

  • view – Target view

Returns:

Viewport rectangle, expressed in pixels in the current target

sfVector2f sfRenderWindow_mapPixelToCoords(const sfRenderWindow *renderWindow, sfVector2i point, const sfView *view)#

Convert a point from window coordinates to world coordinates.

This function finds the 2D position that matches the given pixel of the render-window. In other words, it does the inverse of what the graphics card does, to find the initial position of a rendered pixel.

Initially, both coordinate systems (world units and target pixels) match perfectly. But if you define a custom view or resize your render-window, this assertion is not true anymore, ie. a point located at (10, 50) in your render-window may map to the point (150, 75) in your 2D world — if the view is translated by (140, 25).

This function is typically used to find which point (or object) is located below the mouse cursor.

This version uses a custom view for calculations, see the other overload of the function if you want to use the current view of the render-window.

Parameters:
  • renderWindow – Render window object

  • point – Pixel to convert

  • view – The view to use for converting the point

Returns:

The converted point, in “world” units

sfVector2i sfRenderWindow_mapCoordsToPixel(const sfRenderWindow *renderWindow, sfVector2f point, const sfView *view)#

Convert a point from world coordinates to window coordinates.

This function finds the pixel of the render-window that matches the given 2D point. In other words, it goes through the same process as the graphics card, to compute the final position of a rendered point.

Initially, both coordinate systems (world units and target pixels) match perfectly. But if you define a custom view or resize your render-window, this assertion is not true anymore, ie. a point located at (150, 75) in your 2D world may map to the pixel (10, 50) of your render-window — if the view is translated by (140, 25).

This version uses a custom view for calculations, see the other overload of the function if you want to use the current view of the render-window.

Parameters:
  • renderWindow – Render window object

  • point – Point to convert

  • view – The view to use for converting the point

Returns:

The converted point, in target coordinates (pixels)

void sfRenderWindow_drawSprite(sfRenderWindow *renderWindow, const sfSprite *object, const sfRenderStates *states)#

Draw a drawable object to the render-target.

Parameters:
  • renderWindow – render window object

  • object – Object to draw

  • states – Render states to use for drawing (NULL to use the default states)

void sfRenderWindow_drawText(sfRenderWindow *renderWindow, const sfText *object, const sfRenderStates *states)#
void sfRenderWindow_drawShape(sfRenderWindow *renderWindow, const sfShape *object, const sfRenderStates *states)#
void sfRenderWindow_drawCircleShape(sfRenderWindow *renderWindow, const sfCircleShape *object, const sfRenderStates *states)#
void sfRenderWindow_drawConvexShape(sfRenderWindow *renderWindow, const sfConvexShape *object, const sfRenderStates *states)#
void sfRenderWindow_drawRectangleShape(sfRenderWindow *renderWindow, const sfRectangleShape *object, const sfRenderStates *states)#
void sfRenderWindow_drawVertexArray(sfRenderWindow *renderWindow, const sfVertexArray *object, const sfRenderStates *states)#
void sfRenderWindow_drawVertexBuffer(sfRenderWindow *renderWindow, const sfVertexBuffer *object, const sfRenderStates *states)#
void sfRenderWindow_drawVertexBufferRange(sfRenderWindow *renderWindow, const sfVertexBuffer *object, size_t firstVertex, size_t vertexCount, const sfRenderStates *states)#

Draw primitives defined by a vertex buffer.

Parameters:
  • renderWindow – render window object

  • vertexBuffer – Vertex buffer object to draw

  • firstVertex – Index of the first vertex to render

  • vertexCount – Number of vertices to render

  • states – Render states to use for drawing

void sfRenderWindow_drawPrimitives(sfRenderWindow *renderWindow, const sfVertex *vertices, size_t vertexCount, sfPrimitiveType type, const sfRenderStates *states)#

Draw primitives defined by an array of vertices to a render window.

Parameters:
  • renderWindow – render window object

  • vertices – Pointer to the vertices

  • vertexCount – Number of vertices in the array

  • type – Type of primitives to draw

  • states – Render states to use for drawing (NULL to use the default states)

void sfRenderWindow_pushGLStates(sfRenderWindow *renderWindow)#

Save the current OpenGL render states and matrices.

This function can be used when you mix SFML drawing and direct OpenGL rendering. Combined with popGLStates, it ensures that:

  • SFML’s internal states are not messed up by your OpenGL code

  • your OpenGL states are not modified by a call to a SFML function

Note that this function is quite expensive: it saves all the possible OpenGL states and matrices, even the ones you don’t care about. Therefore it should be used wisely. It is provided for convenience, but the best results will be achieved if you handle OpenGL states yourself (because you know which states have really changed, and need to be saved and restored). Take a look at the resetGLStates function if you do so.

Parameters:
  • renderWindow – render window object

void sfRenderWindow_popGLStates(sfRenderWindow *renderWindow)#

Restore the previously saved OpenGL render states and matrices.

See the description of pushGLStates to get a detailed description of these functions.

Parameters:
  • renderWindow – render window object

void sfRenderWindow_resetGLStates(sfRenderWindow *renderWindow)#

Reset the internal OpenGL states so that the target is ready for drawing.

This function can be used when you mix SFML drawing and direct OpenGL rendering, if you choose not to use pushGLStates/popGLStates. It makes sure that all OpenGL states needed by SFML are set, so that subsequent sfRenderWindow_draw*() calls will work as expected.

Parameters:
  • renderWindow – render window object

sfImage *sfRenderWindow_capture(const sfRenderWindow *renderWindow)#

Copy the current contents of the window to an image.

Deprecated:

Use a sfTexture and its sfTexture_updateFromRenderWindow(sfTexture*, const sfRenderWindow*, unsigned int, unsigned int) function and copy its contents into an sfImage instead.

sfVector2u windowSize = sfRenderWindow_getSize(window);
sfTexture* texture = sfTexture_create(windowSize.x, windowSize.y);
sfTexture_updateFromRenderWindow(texture, window, windowSize.x, windowSize.y);
sfImage* screenshot = sfTexture_copyToImage(texture);

This is a slow operation, whose main purpose is to make screenshots of the application. If you want to update an image with the contents of the window and then use it for drawing, you should rather use a sfTexture and the sfTexture_updateFromWindow(sfTexture*, const sfWindow*, unsigned int, unsigned int) function. You can also draw things directly to a texture with the sfRenderTexture class.

Returns:

sfImage containing the captured contents.

sfVector2i sfMouse_getPositionRenderWindow(const sfRenderWindow *relativeTo)#

Get the current position of the mouse relative to a render-window.

This function returns the current position of the mouse cursor relative to the given render-window, or desktop if NULL is passed.

Parameters:
  • relativeTo – Reference window

Returns:

Position of the mouse cursor, relative to the given render window

void sfMouse_setPositionRenderWindow(sfVector2i position, const sfRenderWindow *relativeTo)#

Set the current position of the mouse relative to a render window.

This function sets the current position of the mouse cursor relative to the given render-window, or desktop if NULL is passed.

Parameters:
  • position – New position of the mouse

  • relativeTo – Reference window

sfVector2i sfTouch_getPositionRenderWindow(unsigned int finger, const sfRenderWindow *relativeTo)#

Get the current position of a touch in window coordinates.

This function returns the current touch position relative to the given render window, or desktop if NULL is passed.

Parameters:
  • finger – Finger index

  • relativeTo – Reference window

Returns:

Current position of finger, or undefined if it’s not down