[Solved] SDL2 how to translate -> SDL_WINDOWPOS_UNDEFINED ?

Just starting out? Need help? Post your questions and find answers here.
User avatar
Mijikai
Addict
Addict
Posts: 1360
Joined: Sun Sep 11, 2016 2:17 pm

[Solved] SDL2 how to translate -> SDL_WINDOWPOS_UNDEFINED ?

Post by Mijikai »

I need some help translating these constants to PB

In SDL_video.h it looks like this:

Code: Select all

#define SDL_WINDOWPOS_UNDEFINED_MASK    0x1FFF0000u
#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)  (SDL_WINDOWPOS_UNDEFINED_MASK|(X))
#define SDL_WINDOWPOS_UNDEFINED         SDL_WINDOWPOS_UNDEFINED_DISPLAY(0)
#define SDL_WINDOWPOS_ISUNDEFINED(X)    \
            (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK)

/**
 *  \brief Used to indicate that the window position should be centered.
 */
#define SDL_WINDOWPOS_CENTERED_MASK    0x2FFF0000u
#define SDL_WINDOWPOS_CENTERED_DISPLAY(X)  (SDL_WINDOWPOS_CENTERED_MASK|(X))
#define SDL_WINDOWPOS_CENTERED         SDL_WINDOWPOS_CENTERED_DISPLAY(0)
#define SDL_WINDOWPOS_ISCENTERED(X)    \
            (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK)
How would this look like in PureBasic ?
Last edited by Mijikai on Sat Oct 21, 2017 1:59 pm, edited 1 time in total.
infratec
Always Here
Always Here
Posts: 6874
Joined: Sun Sep 07, 2008 12:45 pm
Location: Germany

Re: [Help] SDL2 how to translate -> SDL_WINDOWPOS_UNDEFINED

Post by infratec »

Hi,

maybe this works:

Code: Select all

#SDL_WINDOWPOS_UNDEFINED_MASK = $1FFF0000
Macro SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
  (#SDL_WINDOWPOS_UNDEFINED_MASK|(X))
EndMacro

#SDL_WINDOWPOS_UNDEFINED = SDL_WINDOWPOS_UNDEFINED_DISPLAY(0)
Macro SDL_WINDOWPOS_ISUNDEFINED(X) 
  Bool(((X) & $FFFF0000) = #SDL_WINDOWPOS_UNDEFINED_MASK)
EndMacro

;
;  \brief Used To indicate that the window position should be centered.
;
#SDL_WINDOWPOS_CENTERED_MASK = $2FFF0000
Macro SDL_WINDOWPOS_CENTERED_DISPLAY(X)
  (#SDL_WINDOWPOS_CENTERED_MASK|(X))
EndMacro
#SDL_WINDOWPOS_CENTERED = SDL_WINDOWPOS_CENTERED_DISPLAY(0)
Macro SDL_WINDOWPOS_ISCENTERED(X)
  Bool(((X) & $FFFF0000) = #SDL_WINDOWPOS_CENTERED_MASK)
EndMacro
A constant with parameter is not possible in PB, you need a Macro.

If you want everything without #, you can try this:

Code: Select all

Macro SDL_WINDOWPOS_UNDEFINED_MASK
  $1FFF0000
EndMacro
Macro SDL_WINDOWPOS_UNDEFINED_DISPLAY(X)
  (SDL_WINDOWPOS_UNDEFINED_MASK|(X))
EndMacro

Macro SDL_WINDOWPOS_UNDEFINED
  SDL_WINDOWPOS_UNDEFINED_DISPLAY(0)
EndMacro
Macro SDL_WINDOWPOS_ISUNDEFINED(X)
  Bool(((X) & $FFFF0000) = SDL_WINDOWPOS_UNDEFINED_MASK)
EndMacro

;
;  \brief Used To indicate that the window position should be centered.
;
Macro SDL_WINDOWPOS_CENTERED_MASK
  $2FFF0000
EndMacro
Macro SDL_WINDOWPOS_CENTERED_DISPLAY(X)
  (SDL_WINDOWPOS_CENTERED_MASK|(X))
EndMacro
Macro SDL_WINDOWPOS_CENTERED
  SDL_WINDOWPOS_CENTERED_DISPLAY(0)
EndMacro
Macro SDL_WINDOWPOS_ISCENTERED(X)
  Bool(((X) & $FFFF0000) = SDL_WINDOWPOS_CENTERED_MASK)
EndMacro
It should work too.

I would prefer the top version, because you can see what is a constant and which is not.

Bernd
User avatar
Mijikai
Addict
Addict
Posts: 1360
Joined: Sun Sep 11, 2016 2:17 pm

Re: [Help] SDL2 how to translate -> SDL_WINDOWPOS_UNDEFINED

Post by Mijikai »

That was fast :shock:
Thank you it works great :)
Post Reply