SDL Forum Index
SDL
Simple DirectMedia Layer Forums
Reply to topic
how to check for an event
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
Hi, wanted to know how to code for an error state in the following code. I am new to SDL. I simply want a true to some value if a window was successfully created. I've made this window generation a subroutine:

Code:

#include <SDL.h>
#include "make_Window.h"

void make_Window(int horizontal, int vertical)   //SDL_Window *window)
{

   SDL_Init(SDL_INIT_EVERYTHING);

// Create a Window in the middle of the screen
      SDL_Window *window = 0;
        window = SDL_CreateWindow("Hello World!",
                                  SDL_WINDOWPOS_CENTERED,
                                  SDL_WINDOWPOS_CENTERED,
                                  horizontal, vertical,
                                  SDL_WINDOW_SHOWN);
        // Delay so that we can see the window appear
        SDL_Delay(2000);

}
View user's profileSend private message
how to check for an event
Brian Puthuff
Guest

Reply with quote
https://wiki.libsdl.org/SDL_CreateWindow

SDL_CreateWindow will return NULL if failed.


Not sure if that's what you are asking.


On Feb 13, 2017 8:15 AM, "speartip" wrote:
Quote:
Hi, wanted to know how to code for an error state in the following code. I am new to SDL. I simply want a true to some value if a window was successfully created. I've made this window generation a subroutine:



Code:



#include
#include "make_Window.h"

void make_Window(int horizontal, int vertical)   //SDL_Window *window)
{

   SDL_Init(SDL_INIT_EVERYTHING);

// Create a Window in the middle of the screen
      SDL_Window *window = 0;
        window = SDL_CreateWindow("Hello World!",
                                  SDL_WINDOWPOS_CENTERED,
                                  SDL_WINDOWPOS_CENTERED,
                                  horizontal, vertical,
                                  SDL_WINDOW_SHOWN);
        // Delay so that we can see the window appear
        SDL_Delay(2000);

}






_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
Thats it. Thx!! I am just getting use to their library.
View user's profileSend private message
printf / Eclipse IDE
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
Well, a bit premature!

Code:

if (window == NULL) {
                // In the case that the window could not be made...
              printf("Could not create window: %s\n", SDL_GetError());
                return 1;


I experienced problems with printf only to find out my IDE Eclipse is problematic with printf. After adding #include <cstdio> the printf was printing
the "Could not create window:" portion, but not the rest. Can anyone please tell me what is supposed to be printed after it : %s\n",SDL_GetError()
and how to get printf functional?

Thank you.
View user's profileSend private message
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
logically its working; in the braces within the printf is not functioning correctly.
View user's profileSend private message
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
I wanted to update, to focus the problem at hand and make sure nobody thought I was asking them to fix my compiler. No way!

This line initializes.
Code:


if (SDL_Init(SDL_INIT_EVERYTHING) == 0) {                  
              printf("SDL_Init failed: %s\n", SDL_GetError());
              return 1;}


Here I've purposely induced an error state by changing
Code:
 (SDL_Init(SDL_INIT_EVERYTHING) != 0) to (SDL_Init(SDL_INIT_EVERYTHING) == 0)


The error is then thrown and 1/2 of the statement is printed from printf above see bold below:

SDL_Init failed: . But the other half of the statement isn't printed.

But no value for
Code:
SDL,GetError()
is returned on the same line
.


In short my printf statement is cut in half.
View user's profileSend private message
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
printf("SDL_Init failed: %s\n", SDL_GetError())
View user's profileSend private message
how to check for an event
Jonny D


Joined: 12 Sep 2009
Posts: 932
Reply with quote
It doesn't sound like you've actually induced an error state, but instead are printing regardless of whether or not there is an error.

If there is not an actual error, you might expect SDL_GetError() to return an empty string (not sure if that is specified by the API).  So you would see:


SDL_Init failed:



Because the %s was replaced by nothing.


Jonny D




On Wed, Feb 15, 2017 at 1:04 PM, speartip wrote:
Quote:
printf("SDL_Init failed: %s\n", SDL_GetError())




_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

View user's profileSend private messageVisit poster's website
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
It will only print if
Code:
SDL_Init(SDL_INIT_EVERYTHING) == 0)
. But won't print error info.
Program proceeds normally if I change it to:
Code:
SDL_Init(SDL_INIT_EVERYTHING) != 0)


It won't print under just any circumstance.
View user's profileSend private message
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
sorry, in reply to this:

are printing regardless of whether or not there is an error.
View user's profileSend private message
how to check for an event
Jonny D


Joined: 12 Sep 2009
Posts: 932
Reply with quote
Yes, but do you understand my point?  There is no error to print, so SDL_GetError() will not return an error message.  Since there is no error, go ahead and keep working on the rest of the program.

Jonny D




On Wed, Feb 15, 2017 at 4:07 PM, speartip wrote:
Quote:
sorry, in reply to this:

are printing regardless of whether or not there is an error.


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

View user's profileSend private messageVisit poster's website
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
There is no error to print, so SDL_GetError()

No, I got you. Thanks for your patience. I was just experimenting b/c I wanted to see some of the error codes produced, etc.
View user's profileSend private message
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
Oh, ad I wanted a code so I could make sure the printf function was working. Right now I just get 1/2 back:

printf("SDL_Init failed: %s\n", SDL_GetError())

That's ok, I just want to make the code does work, and without an error hard to say.

But I've beat this topic up, so I am just going to move on here ...
View user's profileSend private message
how to check for an event
Jonny D


Joined: 12 Sep 2009
Posts: 932
Reply with quote
Well, you could use SDL_SetError() to at least show something.

https://wiki.libsdl.org/SDL_SetError


Jonny D


On Wednesday, February 15, 2017, speartip wrote:
Quote:
Oh, ad I wanted a code so I could make sure the printf function was working. Right now I just get 1/2 back:

printf("SDL_Init failed: %s\n", SDL_GetError())

That's ok, I just want to make the code does work, and without an error hard to say.

But I've beat this topic up, so I am just going to move on here ...

View user's profileSend private messageVisit poster's website
speartip


Joined: 06 Feb 2017
Posts: 28
Reply with quote
View user's profileSend private message
how to check for an event
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT  
Page 1 of 2  

  
  
 Reply to topic