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);
|
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
|
// Handle events before the user in case a derived
|
||||||
// class decides to block the event.
|
// 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;
|
default: return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,8 +64,9 @@ namespace sdlu
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderWindow::WaitEvent(SDL_Event& event)
|
bool RenderWindow::WaitEvent(SDL_Event* event)
|
||||||
{
|
{
|
||||||
while (!PollEvent(event)) continue;
|
while (!PollEvent(event)) continue;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -70,15 +70,15 @@ namespace sdlu
|
||||||
* @param[out] event An object to write the latest event to
|
* @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 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
|
* @brief A blocking event polling function
|
||||||
*
|
*
|
||||||
* @param[out] event An object to write the latest event to
|
* @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:
|
protected:
|
||||||
SDL_Window* m_pWindow; ///< A pointer to the window object
|
SDL_Window* m_pWindow; ///< A pointer to the window object
|
||||||
|
|
|
@ -7,7 +7,9 @@ class MyWindow :
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MyWindow(Uint32 width, Uint32 height, const char* title) :
|
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
|
// Empty
|
||||||
}
|
}
|
||||||
|
@ -21,7 +23,7 @@ void sdlu::RenderWindow::OnCreate()
|
||||||
bool sdlu::RenderWindow::OnResize()
|
bool sdlu::RenderWindow::OnResize()
|
||||||
{
|
{
|
||||||
std::cout << "Window was Resized!" << std::endl;
|
std::cout << "Window was Resized!" << std::endl;
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sdlu::RenderWindow::OnClose()
|
void sdlu::RenderWindow::OnClose()
|
||||||
|
|
|
@ -11,13 +11,13 @@ int main(int argc, char** argv)
|
||||||
vec *= 1.8f;
|
vec *= 1.8f;
|
||||||
std::cout << "Vector2f: " << vec.x << ", " << vec.y << std::endl;
|
std::cout << "Vector2f: " << vec.x << ", " << vec.y << std::endl;
|
||||||
|
|
||||||
try {
|
MyWindow window(800, 800, "Test");
|
||||||
MyWindow window(800, 800, "Test");
|
|
||||||
}
|
SDL_Event event;
|
||||||
catch (sdlu::ObjectCreationException e)
|
while (window.WaitEvent(&event))
|
||||||
{
|
{
|
||||||
std::cerr << e.what() << std::endl;
|
std::cout << event.type << std::endl;
|
||||||
std::cerr << SDL_GetError() << std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
Reference in a new issue