-
Notifications
You must be signed in to change notification settings - Fork 85
Open
Labels
Description
I'm running into a funny error where I'm not able to create a renderer. This error only happens when building using nix (and I'm fairly new to nix so this could be a simple dependency gotcha). The same program compiled with stack builds and runs just fine. Here's the error that I'm getting:
SDLCallFailed {sdlExceptionCaller = "SDL.Video.createRenderer", sdlFunction = "SDL_CreateRenderer", sdlExceptionError = "Couldn't find matching render driver"}
And for debugging, given this code:
let rcfg = SDL.RendererConfig
{ SDL.rendererType = SDL.AcceleratedVSyncRenderer
, SDL.rendererTargetTexture = True
}
liftIO $ do
print rcfg
putStrLn ""
SDL.getRenderDriverInfo
>>= liftIO . mapM (\i -> print i >> putStrLn "")
r <- SDL.createRenderer win (-1) rcfg
...
I get this output:
RendererConfig {rendererType = AcceleratedVSyncRenderer, rendererTargetTexture = True}
RendererInfo {rendererInfoName = "opengl", rendererInfoFlags = RendererConfig {rendererType = AcceleratedVSyncRenderer, rendererTargetTexture = True}, rendererInfoNumTextureFormats = 1, rendererInfoTextureFormats = [ARGB8888,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown], rendererInfoMaxTextureWidth = 0, rendererInfoMaxTextureHeight = 0}
RendererInfo {rendererInfoName = "opengles2", rendererInfoFlags = RendererConfig {rendererType = AcceleratedVSyncRenderer, rendererTargetTexture = True}, rendererInfoNumTextureFormats = 4, rendererInfoTextureFormats = [ARGB8888,ABGR8888,RGB888,BGR888,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown], rendererInfoMaxTextureWidth = 0, rendererInfoMaxTextureHeight = 0}
RendererInfo {rendererInfoName = "opengles", rendererInfoFlags = RendererConfig {rendererType = AcceleratedVSyncRenderer, rendererTargetTexture = False}, rendererInfoNumTextureFormats = 1, rendererInfoTextureFormats = [ABGR8888,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown], rendererInfoMaxTextureWidth = 0, rendererInfoMaxTextureHeight = 0}
RendererInfo {rendererInfoName = "software", rendererInfoFlags = RendererConfig {rendererType = SoftwareRenderer, rendererTargetTexture = True}, rendererInfoNumTextureFormats = 8, rendererInfoTextureFormats = [ARGB8888,ABGR8888,RGBA8888,BGRA8888,RGB888,BGR888,RGB565,RGB555,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown], rendererInfoMaxTextureWidth = 0, rendererInfoMaxTextureHeight = 0}
Furthermore, if I try to specify that the window use OpenGL by supplying defaultWindow{ windowOpenGL = Just defaultOpenGL }
I get a different error:
SDLCallFailed {sdlExceptionCaller = "SDL.Video.createRenderer", sdlFunction = "SDL_CreateRenderer", sdlExceptionError = "Invalid window"}
Thanks for any help, it's much appreciated - even just spit balling.