From e33af13ae39355ea3f46108d9ed1cb71ff19676e Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 27 Jul 2013 11:03:28 +0100 Subject: [PATCH 1/2] Fixes #543. Changed signature of SetVideoMode so that the flags param is a uint32. --- lib/wrappers/sdl/sdl.nim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/wrappers/sdl/sdl.nim b/lib/wrappers/sdl/sdl.nim index 1d43ca5568..1c88bc14e5 100644 --- a/lib/wrappers/sdl/sdl.nim +++ b/lib/wrappers/sdl/sdl.nim @@ -270,6 +270,7 @@ # {.deadCodeElim: on.} +import unsigned when defined(windows): const LibName = "SDL.dll" @@ -1807,7 +1808,7 @@ proc ListModes*(format: PPixelFormat, flags: int32): PPSDL_Rect{.cdecl, # applications that redraw the entire screen on every update. # # This function returns the video framebuffer surface, or NULL if it fails. -proc SetVideoMode*(width, height, bpp: int, flags: int32): PSurface{.cdecl, +proc SetVideoMode*(width, height, bpp: int, flags: uint32): PSurface{.cdecl, importc: "SDL_SetVideoMode", dynlib: LibName.} # Makes sure the given list of rectangles is updated on the given screen. # If 'x', 'y', 'w' and 'h' are all 0, SDL_UpdateRect will update the entire From c5c6ef6e2beb187e4d1e1c4b67a14b67a291e6f9 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 27 Jul 2013 11:18:13 +0100 Subject: [PATCH 2/2] Fixes graphics.drawEllipse. It failed because a Natural cannot be negative but drawEllipse tried to set negative values to a Natural variable; this variable's type was changed to an Int. --- lib/impure/graphics.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/impure/graphics.nim b/lib/impure/graphics.nim index f9aadf995e..85eeaed421 100644 --- a/lib/impure/graphics.nim +++ b/lib/impure/graphics.nim @@ -360,7 +360,7 @@ proc drawEllipse*(sur: PSurface, CX, CY, XRadius, YRadius: Natural, ## of the ellipse. var X, Y: Natural - XChange, YChange: Natural + XChange, YChange: Int EllipseError: Natural TwoASquare, TwoBSquare: Natural StoppingX, StoppingY: Natural @@ -501,6 +501,7 @@ if sdl_ttf.Init() < 0: raiseEGraphics() when isMainModule: var surf = newScreenSurface(800, 600) + surf.fillSurface(colWhite) # Draw the shapes @@ -545,6 +546,8 @@ when isMainModule: if evk.keysym.sym == SDL.K_LEFT: surf.drawHorLine(395, 300, 50, colBlack) echo("Drawing") + elif evk.keysym.sym == SDL.K_ESCAPE: + break else: echo(evk.keysym.sym) of SDL.MOUSEBUTTONDOWN: