Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(suggestion) Convert sdl.Rect Fields from int32 to int #600

Open
Priff13 opened this issue May 7, 2024 · 3 comments
Open

(suggestion) Convert sdl.Rect Fields from int32 to int #600

Priff13 opened this issue May 7, 2024 · 3 comments

Comments

@Priff13
Copy link

Priff13 commented May 7, 2024

Would you mind converting the sdl.Rect field types from int32 to int?
This would help code readability when defining new rectangles.

@veeableful
Copy link
Contributor

Hi @Priff13, it was done to keep compatibility with SDL2’s native C integers. Would you happen to have a suggestion on how to make the fields int and keep them compatible?

@Priff13
Copy link
Author

Priff13 commented May 8, 2024

Hi @Priff13, it was done to keep compatibility with SDL2’s native C integers. Would you happen to have a suggestion on how to make the fields int and keep them compatible?

@veeableful, the way that I would go about it is like this:
I would convert the struct types to int, but keep the old struct, like this:

type Rect struct {
	X, Y, W, H int
}

type rect_internal struct {
	X, Y, W, H int32
}

I see that the function func (a *Rect) cptr() *C.SDL_Rect is the primary function that is used when interacting with C, so I would adjust it to work like this:

func (a *Rect) cptr() *C.SDL_Rect {
	b := &rect_internal{ X: int32(*a.X), Y: int32(*a.Y), W: int32(*a.W), H: int32(*a.H) }
	return (*C.SDL_Rect)(unsafe.Pointer(b))
}

In the rest of the cases where sdl.Rect is used, all that would need to be done is convert the fields to or from int32.

It's not an insignificant amount of changes, but I believe that it would be overall beneficial for the developer experience.

PS: Applying the same changes to sdl.Point would be greatly appreciated.

@veeableful
Copy link
Contributor

Thanks @Priff13. I think I will have to postpone it due to the amount of effort that it would require for me to maintain by myself but if you would like to create a pull request, it would be greatly appreciated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants