veandco / go-sdl2

SDL2 binding for Go
https://godoc.org/github.com/veandco/go-sdl2
BSD 3-Clause "New" or "Revised" License
2.23k stars 225 forks source link

Can SDL_SetTextureScaleMode be used somehow? #571

Open code-qote opened 1 year ago

code-qote commented 1 year ago

Hello. I had updated package by go get, so it had v0.4.35. There was no implementation of SDL_SetTextureScaleMode. I checked the several latest commits in master and found its implementation there. I edited my go.mod and installed the latest commit but now the application freezes while Renderer.Copy(). What have I done wrong?

I need it to solve the problem with blurry font (macOS). According to that, it should help. Maybe there is an another option?

veeableful commented 1 year ago

Hi @code-qote, could you show a minimal example of the code that makes the application freeze?

code-qote commented 1 year ago

At application starting, I render all supported chars and save it in PreRenderredCharTextures. Like this:

for _, char := range supportedChars {
    for _, color := range Colors {
        fontSurface, _ := e.font.ttfFont.RenderGlyphBlended(char, hexToSdlColor(color))
        texture, _ := e.renderer.CreateTextureFromSurface(fontSurface)
        // texture.SetScaleMode(sdl.ScaleModeLinear)
        cache.PreRenderredCharTextures[char][color] = CharTexture{texture, fontSurface.W}
    }
}

Then every frame I do (freezes here):

e.renderer.Copy(e.cache.PreRenderredCharTextures[rune(c)][Colors[t]].Texture, nil, e.GetRectFromMatrix(row, col))
veeableful commented 1 year ago

Hi @code-qote, would you be able to provide a minimal example that I can run? I can't seem to reproduce it.