Skip to content

Instantly share code, notes, and snippets.

@PhilipWitte
Last active August 29, 2015 14:15
Show Gist options
  • Save PhilipWitte/8935a52bcf945e7a878b to your computer and use it in GitHub Desktop.
Save PhilipWitte/8935a52bcf945e7a878b to your computer and use it in GitHub Desktop.
type RenderTexture = object
type RenderWindow = object
type Sprite = object
type RenderTarget* = RenderTexture | RenderWindow
type RenderTargetProc* = proc(s:Sprite, r:RenderTarget)
type Drawable* = generic d, r
r is RenderTarget
d.draw(r)
# ---
proc draw*(s: Sprite, r: RenderTarget) =
echo "RENDERED"
# ---
var w: RenderWindow
var s: Sprite
s.draw(w)
# --- ORIGINAL BELOW --- #
type RenderTexture = object
type RenderWindow = object
type Sprite = object
type RenderTarget* = RenderTexture | RenderWindow
type Drawable* = generic d
d.draw(RenderWindow)
d.draw(RenderTexture)
# ---
proc draw*(obj: Sprite, renderTarget: RenderTarget) =
echo "RENDERED"
proc draw*(renderTarget: RenderTarget, obj: Drawable) =
obj.draw(renderTarget)
# ---
var w: RenderWindow
var s: Sprite
w.draw(s)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment