(define-sdl-func int sdl-get-num-render-drivers () "SDL_GetNumRenderDrivers")
(define-sdl-func int sdl-get-render-driver-info ((index int) (info (* sdl-renderer-info-t))) "SDL_GetRenderDriverInfo")
(define-sdl-func int sdl-create-window-and-renderer ((width int) (height int) (window_flags uint32) (window (* sdl-window-t)) (renderer (* sdl-renderer-t))) "SDL_CreateWindowAndRenderer")
(define-sdl-func (* sdl-renderer-t) sdl-create-renderer ((window (* sdl-window-t)) (index int) (flags uint32)) "SDL_CreateRenderer")
(define-sdl-func (* sdl-renderer-t) sdl-create-software-renderer ((surface (* sdl-surface-t))) "SDL_CreateSoftwareRenderer")
(define-sdl-func (* sdl-renderer-t) sdl-get-renderer ((window (* sdl-window-t))) "SDL_GetRenderer")
(define-sdl-func int sdl-get-renderer-info ((renderer (* sdl-renderer-t)) (info (* sdl-renderer-info-t))) "SDL_GetRendererInfo")
(define-sdl-func int sdl-get-renderer-output-size ((renderer (* sdl-renderer-t)) (w (* int)) (h (* int))) "SDL_GetRendererOutputSize")
(define-sdl-func (* sdl-texture-t) sdl-create-texture ((renderer (* sdl-renderer-t)) (format uint32) (access int) (w int) (h int)) "SDL_CreateTexture")
(define-sdl-func (* sdl-texture-t) sdl-create-texture-from-surface ((renderer (* sdl-renderer-t)) (surface (* sdl-surface-t))) "SDL_CreateTextureFromSurface")
(define-sdl-func int sdl-query-texture ((texture (* sdl-texture-t)) (format (* uint32)) (access (* int)) (w (* int)) (h (* int))) "SDL_QueryTexture")
(define-sdl-func int sdl-set-texture-color-mod ((texture (* sdl-texture-t)) (r uint8) (g uint8) (b uint8)) "SDL_SetTextureColorMod")
(define-sdl-func int sdl-get-texture-color-mod ((texture (* sdl-texture-t)) (r (* uint8)) (g (* uint8)) (b (* uint8))) "SDL_GetTextureColorMod")
(define-sdl-func int sdl-set-texture-alpha-mod ((texture (* sdl-texture-t)) (alpha uint8)) "SDL_SetTextureAlphaMod")
(define-sdl-func int sdl-get-texture-alpha-mod ((texture (* sdl-texture-t)) (alpha (* uint8))) "SDL_GetTextureAlphaMod")
(define-sdl-func int sdl-set-texture-blend-mode ((texture (* sdl-texture-t)) (blendMode sdl-blend-mode-t)) "SDL_SetTextureBlendMode")
(define-sdl-func int sdl-get-texture-blend-mode ((texture (* sdl-texture-t)) (blendMode (* sdl-blend-mode-t))) "SDL_GetTextureBlendMode")
(define-sdl-func int sdl-update-texture ((texture (* sdl-texture-t)) (rect (* sdl-rect-t)) (pixels void*) (pitch int)) "SDL_UpdateTexture")
(define-sdl-func int sdl-update-yuv-texture ((texture (* sdl-texture-t)) (rect (* sdl-rect-t)) (Yplane (* uint8)) (Ypitch int) (Uplane (* uint8)) (Upitch int) (Vplane (* uint8)) (Vpitch int)) "SDL_UpdateYUVTexture")
(define-sdl-func int sdl-lock-texture ((texture (* sdl-texture-t)) (rect (* sdl-rect-t)) (pixels (* void*)) (pitch (* int))) "SDL_LockTexture")
(define-sdl-func void sdl-unlock-texture ((texture (* sdl-texture-t))) "SDL_UnlockTexture")
(define-sdl-func sdl-bool-t sdl-render-target-supported ((renderer (* sdl-renderer-t))) "SDL_RenderTargetSupported")
(define-sdl-func int sdl-set-render-target ((renderer (* sdl-renderer-t)) (texture (* sdl-texture-t))) "SDL_SetRenderTarget")
(define-sdl-func (* sdl-texture-t) sdl-get-render-target ((renderer (* sdl-renderer-t))) "SDL_GetRenderTarget")
(define-sdl-func int sdl-render-set-logical-size ((renderer (* sdl-renderer-t)) (w int) (h int)) "SDL_RenderSetLogicalSize")
(define-sdl-func void sdl-render-get-logical-size ((renderer (* sdl-renderer-t)) (w (* int)) (h (* int))) "SDL_RenderGetLogicalSize")
(define-sdl-func int sdl-render-set-integer-scale ((renderer (* sdl-renderer-t)) (enable sdl-bool-t)) "SDL_RenderSetIntegerScale")
(define-sdl-func sdl-bool-t sdl-render-get-integer-scale ((renderer (* sdl-renderer-t))) "SDL_RenderGetIntegerScale")
(define-sdl-func int sdl-render-set-viewport ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderSetViewport")
(define-sdl-func void sdl-render-get-viewport ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderGetViewport")
(define-sdl-func int sdl-render-set-clip-rect ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderSetClipRect")
(define-sdl-func void sdl-render-get-clip-rect ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderGetClipRect")
(define-sdl-func sdl-bool-t sdl-render-is-clip-enabled ((renderer (* sdl-renderer-t))) "SDL_RenderIsClipEnabled")
(define-sdl-func int sdl-render-set-scale ((renderer (* sdl-renderer-t)) (scaleX float) (scaleY float)) "SDL_RenderSetScale")
(define-sdl-func void sdl-render-get-scale ((renderer (* sdl-renderer-t)) (scaleX (* float)) (scaleY (* float))) "SDL_RenderGetScale")
(define-sdl-func int sdl-set-render-draw-color ((renderer (* sdl-renderer-t)) (r uint8) (g uint8) (b uint8) (a uint8)) "SDL_SetRenderDrawColor")
(define-sdl-func int sdl-get-render-draw-color ((renderer (* sdl-renderer-t)) (r (* uint8)) (g (* uint8)) (b (* uint8)) (a (* uint8))) "SDL_GetRenderDrawColor")
(define-sdl-func int sdl-set-render-draw-blend-mode ((renderer (* sdl-renderer-t)) (blendMode sdl-blend-mode-t)) "SDL_SetRenderDrawBlendMode")
(define-sdl-func int sdl-get-render-draw-blend-mode ((renderer (* sdl-renderer-t)) (blendMode (* sdl-blend-mode-t))) "SDL_GetRenderDrawBlendMode")
(define-sdl-func int sdl-render-clear ((renderer (* sdl-renderer-t))) "SDL_RenderClear")
(define-sdl-func int sdl-render-draw-point ((renderer (* sdl-renderer-t)) (x int) (y int)) "SDL_RenderDrawPoint")
(define-sdl-func int sdl-render-draw-points ((renderer (* sdl-renderer-t)) (points (* sdl-point-t)) (count int)) "SDL_RenderDrawPoints")
(define-sdl-func int sdl-render-draw-line ((renderer (* sdl-renderer-t)) (x1 int) (y1 int) (x2 int) (y2 int)) "SDL_RenderDrawLine")
(define-sdl-func int sdl-render-draw-lines ((renderer (* sdl-renderer-t)) (points (* sdl-point-t)) (count int)) "SDL_RenderDrawLines")
(define-sdl-func int sdl-render-draw-rect ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderDrawRect")
(define-sdl-func int sdl-render-draw-rects ((renderer (* sdl-renderer-t)) (rects (* sdl-rect-t)) (count int)) "SDL_RenderDrawRects")
(define-sdl-func int sdl-render-fill-rect ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t))) "SDL_RenderFillRect")
(define-sdl-func int sdl-render-fill-rects ((renderer (* sdl-renderer-t)) (rects (* sdl-rect-t)) (count int)) "SDL_RenderFillRects")
(define-sdl-func int sdl-render-copy ((renderer (* sdl-renderer-t)) (texture (* sdl-texture-t)) (srcrect (* sdl-rect-t)) (dstrect (* sdl-rect-t))) "SDL_RenderCopy")
(define-sdl-func int sdl-render-copy-ex ((renderer (* sdl-renderer-t)) (texture (* sdl-texture-t)) (srcrect (* sdl-rect-t)) (dstrect (* sdl-rect-t)) (angle double) (center (* sdl-point-t)) (flip sdl-renderer-flip-t)) "SDL_RenderCopyEx")
(define-sdl-func int sdl-render-read-pixels ((renderer (* sdl-renderer-t)) (rect (* sdl-rect-t)) (format uint32) (pixels void*) (pitch int)) "SDL_RenderReadPixels")
(define-sdl-func void sdl-render-present ((renderer (* sdl-renderer-t))) "SDL_RenderPresent")
(define-sdl-func void sdl-destroy-texture ((texture (* sdl-texture-t))) "SDL_DestroyTexture")
(define-sdl-func void sdl-destroy-renderer ((renderer (* sdl-renderer-t))) "SDL_DestroyRenderer")
(define-sdl-func int sdl-gl-bind-texture ((texture (* sdl-texture-t)) (texw (* float)) (texh (* float))) "SDL_GL_BindTexture")
(define-sdl-func int sdl-gl-unbind-texture ((texture (* sdl-texture-t))) "SDL_GL_UnbindTexture")
