Fixed OnEvent logic, Updated example
This commit is contained in:
parent
05c7cddfd3
commit
bf6b934b9b
|
@ -47,15 +47,15 @@ namespace sdlu
|
|||
return !IS_NULLPTR(m_pWindow);
|
||||
}
|
||||
|
||||
bool RenderWindow::PollEvent(SDL_Event& event)
|
||||
bool RenderWindow::PollEvent(SDL_Event* event)
|
||||
{
|
||||
// Handle events before the user in case a derived
|
||||
// class decides to block the event.
|
||||
while (SDL_PollEvent(&event))
|
||||
while (SDL_PollEvent(event))
|
||||
{
|
||||
switch(event.type)
|
||||
switch(event->window.event)
|
||||
{
|
||||
case SDL_WINDOWEVENT_RESIZED: OnResize() ? break : return true;
|
||||
case SDL_WINDOWEVENT_RESIZED: if (!OnResize()) return true; break;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
@ -64,8 +64,9 @@ namespace sdlu
|
|||
return false;
|
||||
}
|
||||
|
||||
bool RenderWindow::WaitEvent(SDL_Event& event)
|
||||
bool RenderWindow::WaitEvent(SDL_Event* event)
|
||||
{
|
||||
while (!PollEvent(event)) continue;
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -70,15 +70,15 @@ namespace sdlu
|
|||
* @param[out] event An object to write the latest event to
|
||||
* @return True if there was an event, False if there wasn't
|
||||
*/
|
||||
bool PollEvent(SDL_Event& event);
|
||||
bool PollEvent(SDL_Event* event);
|
||||
|
||||
/**
|
||||
* @brief A blocking event polling function
|
||||
*
|
||||
* @param[out] event An object to write the latest event to
|
||||
* @return True if there was an event, False if there wasn't
|
||||
* @return True if an event was polled
|
||||
*/
|
||||
bool WaitEvent(SDL_Event& event);
|
||||
bool WaitEvent(SDL_Event* event);
|
||||
|
||||
protected:
|
||||
SDL_Window* m_pWindow; ///< A pointer to the window object
|
||||
|
|
|
@ -7,7 +7,9 @@ class MyWindow :
|
|||
{
|
||||
public:
|
||||
MyWindow(Uint32 width, Uint32 height, const char* title) :
|
||||
RenderWindow(sdlu::Vector2u(width, height), title, NULL, NULL)
|
||||
RenderWindow(sdlu::Vector2u(width, height), title,
|
||||
SDL_WINDOW_RESIZABLE,
|
||||
NULL)
|
||||
{
|
||||
// Empty
|
||||
}
|
||||
|
@ -21,7 +23,7 @@ void sdlu::RenderWindow::OnCreate()
|
|||
bool sdlu::RenderWindow::OnResize()
|
||||
{
|
||||
std::cout << "Window was Resized!" << std::endl;
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void sdlu::RenderWindow::OnClose()
|
||||
|
|
|
@ -11,13 +11,13 @@ int main(int argc, char** argv)
|
|||
vec *= 1.8f;
|
||||
std::cout << "Vector2f: " << vec.x << ", " << vec.y << std::endl;
|
||||
|
||||
try {
|
||||
MyWindow window(800, 800, "Test");
|
||||
}
|
||||
catch (sdlu::ObjectCreationException e)
|
||||
MyWindow window(800, 800, "Test");
|
||||
|
||||
SDL_Event event;
|
||||
while (window.WaitEvent(&event))
|
||||
{
|
||||
std::cerr << e.what() << std::endl;
|
||||
std::cerr << SDL_GetError() << std::endl;
|
||||
std::cout << event.type << std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue