Gamedev Framework (gf)  0.17.0
A C++14 framework for 2D games
Public Member Functions | List of all members
gf::ViewContainer Class Reference

A container of views. More...

#include <gf/ViewContainer.h>

Public Member Functions

void addView (AdaptativeView &view)
 Add a view to the container. More...
 
void processEvent (const Event &event)
 Update the views thanks to the event. More...
 
void onFramebufferSizeChange (Vector2i framebufferSize)
 Update the views with the new framebuffer size. More...
 
void setInitialFramebufferSize (Vector2i framebufferSize)
 Set the initial framebuffer size. More...
 
void setInitialScreenSize (Vector2i screenSize)
 Set the initial screen size. More...
 

Detailed Description

A container of views.

A view manager handles several adaptive views. It can update all the views at the same time. All it needs is the events that come from the window.

Here is a full example with two adaptive views:

gf::ExtendView extendView;
extendView.setSize(ViewSize);
views.addView(extendView);
gf::ScreenView screenView;
views.addView(screenView);
// initialize the views with the initial screen size
views.setInitialFramebufferSize(ScreenSize);
// ...
while (window.isOpen()) {
gf::Event event;
while (window.pollEvent(event)) {
// ...
views.processEvent(event);
}
// ...
renderer.clear();
renderer.setView(extendView);
renderer.draw(sprite);
renderer.setView(screenView);
renderer.draw(ui);
renderer.display();
}
See also
gf::AdaptativeView

Member Function Documentation

◆ addView()

void gf::ViewContainer::addView ( AdaptativeView view)

Add a view to the container.

Parameters
viewAn adaptive view

◆ onFramebufferSizeChange()

void gf::ViewContainer::onFramebufferSizeChange ( Vector2i  framebufferSize)

Update the views with the new framebuffer size.

Parameters
framebufferSizeThe new size of the framebuffer
See also
gf::AdaptativeView::onFramebufferSizeChange()

◆ processEvent()

void gf::ViewContainer::processEvent ( const Event event)

Update the views thanks to the event.

Internally it calls onFramebufferSizeChange() if a resize event occurs.

Parameters
eventAn event

◆ setInitialFramebufferSize()

void gf::ViewContainer::setInitialFramebufferSize ( Vector2i  framebufferSize)

Set the initial framebuffer size.

Parameters
framebufferSizeThe initial size of the framebuffer

◆ setInitialScreenSize()

void gf::ViewContainer::setInitialScreenSize ( Vector2i  screenSize)
inline

Set the initial screen size.

Parameters
screenSizeThe initial size of the screen
Deprecated:
You should use setInitialFramebufferSize() instead