package bogue

  1. Overview
  2. Docs

Module Bogue.DrawSource

Low-level graphics and colors

This module is internally used for low-level graphics and a thin layer over Tsdl.

The public API is mainly useful for Color management.

Dependency graph
Sourcetype canvas

Contains the hardware information for drawing (SDL renderer and window).

Sourcetype texture = Tsdl.Sdl.texture

Initialization and shutdown

Sourceval quit : unit -> unit

Cleanup and quit SDL.

Colors

Sourcetype rgb = int * int * int

red, green and blue values are integers in the range 0..255

Sourcetype color = int * int * int * int

r,g,b,a

Sourcetype fill =
  1. | Pattern of texture
  2. | Solid of color

Predefined colors

Sourceval black : rgb
Sourceval grey : rgb
Sourceval pale_grey : rgb
Sourceval dark_grey : rgb
Sourceval white : rgb
Sourceval red : rgb
Sourceval blue : rgb
Sourceval green : rgb
Sourceval magenta : rgb
Sourceval cyan : rgb
Sourceval yellow : rgb
Sourceval sienna : rgb
Sourceval label_color : rgb
Sourceval none : color

none = (0,0,0,0) is completely transparent black.

Creating colors

Sourceval opaque : rgb -> color
Sourceval transp : rgb -> color
Sourceval lighter : color -> color
Sourceval darker : color -> color
Sourceval set_alpha : int -> rgb -> color
Sourceval find_color : string -> rgb

Convert a string of the form "grey" or "#FE01BC" to a rgb code (r,g,b). Color names are taken from here.

Sourceval pale : rgb -> rgb

Using colors

Sourceval set_color : Tsdl.Sdl.renderer -> color -> unit

Equivalent to Sdl.set_render_draw_color.

Layers

Sourcetype layer

Layers are used to decide the order of drawing: which graphical elements (layouts) should be below, which should be above. For the most part, you don't have to access them directly.

Sourceval use_new_layer : unit -> unit

Use this when you want to switch to a completely different set of layers, typically when you want to draw on another window.

Misc

Sourcetype align =
  1. | Min
  2. | Center
  3. | Max
Sourceval unscale_size : (int * int) -> int * int

Transform a size (W,H) in physical pixels into 'logical' pixels (w,h), which are used for layouts. This is done by dividing by the Theme SCALE variable.

Sourceval set_system_cursor : Tsdl.Sdl.System_cursor.t -> unit

Set the mouse cursor to be the standard system cursor. Internally, this first creates an SDL system cursor (or use a previously created one).