Re: cannot convert 'SDL_DisplayMode' to 'SDL_DisplayMode*

Brian Puthuff <[email protected]> Tue, 7 Feb 2017 18:11:21 -0800
Newsgroups gmane.comp.lib.sdl
Message-ID <CAPh_eMHzaXjSOnOoEsK1FcqTtMKa45-y87E9qqNdXXzvOnHyUA@mail.gmail.com>
Your .H function declaration (prototype) for gobot and your .CPP function
need to have the same arguments and return types.
If your goal is to pass horizontal and vertical and dm into the function,
and then store the display mode's width and height data into horizontal and
vertical respectively, then you need to have the function take in pointers
to horizontal and vertical. Then in your function definition, deference
your pointers and store the values obtained by dm. Hopefully that makes
sense.


Code:

int horizontal = 0;
int vertical = 0;
SDL_DisplayMode dm;
cout<<"Gobot call:";
gobot(&horizontal, &vertical, &dm);


In your .CPP Definition:

int gobot( int* horizontal, int* vertical, SDL_DisplayMode* dm )
   {
      //SDL_GetDesktopDisplayMode(0, &dm);
      *horizontal = dm->w;
      *vertical = dm->h;
      return 0;
   }

In your .H Declaration
int gobot( int* horizontal, int* vertical, SDL_DisplayMode* dm );

On Tue, Feb 7, 2017 at 5:20 PM, speartip <[email protected]> wrote:

> Hi,
>
> I am struggling with some pretty straight forward c/c++ & SDL code. But I
> am not feeling the straightforwardness of it though. I don't know if its a
> c++ issue or SDL. I try to call SDL fx code from an external .cpp/.h. I am
> trying to make these reusable and to release main from clutter. Everything
> runs smoothly until the second block:
>
>
>
>
> Code:
>
>
> int horizontal = 0;
> int vertical = 0;
> SDL_DisplayMode dm;
> cout<<"Gobot call:";
> gobot(horizontal, vertical,&dm);
>
>
>
>
>
>
>
> Code:
>
>
> #ifndef GOBOT_CPP_
> #define GOBOT_CPP_
>
> #include "SDL.h"
> #include "gobot.h"
>
>
> int gobot( int &horizontal, int &vertical, &dm )
>    {
>       //SDL_GetDesktopDisplayMode(0, &dm);
>       horizontal = dm->w;
>       vertical = dm->h;
>       return 0;
>    }
>    //cout<<"Resolution: x = "<
>
>
> Code:
>
>
> #ifndef GOBOT_H_
> #define GOBOT_H_
> #include"SDL.h"
>
> int SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * dm);
> int gobot(int horizontal, int vertical, SDL_DisplayMode * dm);
>
> #endif /* GOBOT_H_ */
>
>
>
>
> error:
> In function 'int SDL_main(int, char**)':
> ..\src\SpearTip.cpp:50:35: error: cannot convert 'SDL_DisplayMode' to
> 'SDL_DisplayMode*' for argument '3' to 'int gobot(int, int,
> SDL_DisplayMode*)'
> gobot(horizontal, vertical, dm);
>
> Thanks
>
> _______________________________________________
> SDL mailing list
> [email protected]
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
>
>

_______________________________________________
SDL mailing list
[email protected]
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org