sig
  type 'a reference = 'a
  module type RECT_VAL =
    sig
      type t
      val zero : OcsfmlGraphics.RECT_VAL.t
      val add :
        OcsfmlGraphics.RECT_VAL.t ->
        OcsfmlGraphics.RECT_VAL.t -> OcsfmlGraphics.RECT_VAL.t
      val sub :
        OcsfmlGraphics.RECT_VAL.t ->
        OcsfmlGraphics.RECT_VAL.t -> OcsfmlGraphics.RECT_VAL.t
    end
  module Rect :
    functor (M : RECT_VAL->
      sig
        type 'a rect = { left : 'a; top : 'a; width : 'a; height : 'a; }
        type t = M.t OcsfmlGraphics.Rect.rect
        val create :
          ?position:M.t * M.t ->
          ?size:M.t * M.t -> unit -> OcsfmlGraphics.Rect.t
        val contains : OcsfmlGraphics.Rect.t -> M.t -> M.t -> bool
        val contains_v : OcsfmlGraphics.Rect.t -> M.t * M.t -> bool
        val intersects :
          OcsfmlGraphics.Rect.t ->
          OcsfmlGraphics.Rect.t -> OcsfmlGraphics.Rect.t option
      end
  module IntRect :
    sig
      type 'a rect = { left : 'a; top : 'a; width : 'a; height : 'a; }
      type t = int OcsfmlGraphics.IntRect.rect
      val create :
        ?position:int * int ->
        ?size:int * int -> unit -> OcsfmlGraphics.IntRect.t
      val contains : OcsfmlGraphics.IntRect.t -> int -> int -> bool
      val contains_v : OcsfmlGraphics.IntRect.t -> int * int -> bool
      val intersects :
        OcsfmlGraphics.IntRect.t ->
        OcsfmlGraphics.IntRect.t -> OcsfmlGraphics.IntRect.t option
    end
  module FloatRect :
    sig
      type 'a rect = { left : 'a; top : 'a; width : 'a; height : 'a; }
      type t = float OcsfmlGraphics.FloatRect.rect
      val create :
        ?position:float * float ->
        ?size:float * float -> unit -> OcsfmlGraphics.FloatRect.t
      val contains : OcsfmlGraphics.FloatRect.t -> float -> float -> bool
      val contains_v : OcsfmlGraphics.FloatRect.t -> float * float -> bool
      val intersects :
        OcsfmlGraphics.FloatRect.t ->
        OcsfmlGraphics.FloatRect.t -> OcsfmlGraphics.FloatRect.t option
    end
  module Color :
    sig
      type t = { r : int; g : int; b : int; a : int; }
      val rgb : int -> int -> int -> OcsfmlGraphics.Color.t
      val rgba : int -> int -> int -> int -> OcsfmlGraphics.Color.t
      val add :
        OcsfmlGraphics.Color.t ->
        OcsfmlGraphics.Color.t -> OcsfmlGraphics.Color.t
      val modulate :
        OcsfmlGraphics.Color.t ->
        OcsfmlGraphics.Color.t -> OcsfmlGraphics.Color.t
      val white : OcsfmlGraphics.Color.t
      val black : OcsfmlGraphics.Color.t
      val red : OcsfmlGraphics.Color.t
      val green : OcsfmlGraphics.Color.t
      val blue : OcsfmlGraphics.Color.t
      val yellow : OcsfmlGraphics.Color.t
      val magenta : OcsfmlGraphics.Color.t
      val cyan : OcsfmlGraphics.Color.t
      module Infix :
        sig
          val ( +% ) :
            OcsfmlGraphics.Color.t ->
            OcsfmlGraphics.Color.t -> OcsfmlGraphics.Color.t
          val ( *% ) :
            OcsfmlGraphics.Color.t ->
            OcsfmlGraphics.Color.t -> OcsfmlGraphics.Color.t
        end
    end
  module BlendMode :
    sig type t = BlendAlpha | BlendAdd | BlendMultiply | BlendNone end
  module Transform :
    sig
      type t
      val default : unit -> OcsfmlGraphics.Transform.t
      val copy : OcsfmlGraphics.Transform.t -> OcsfmlGraphics.Transform.t
      val destroy : OcsfmlGraphics.Transform.t -> unit
      val affect :
        OcsfmlGraphics.Transform.t ->
        OcsfmlGraphics.Transform.t -> OcsfmlGraphics.Transform.t
      val get_inverse :
        OcsfmlGraphics.Transform.t -> OcsfmlGraphics.Transform.t
      val transform_point :
        OcsfmlGraphics.Transform.t -> float -> float -> float * float
      val transform_point_v :
        OcsfmlGraphics.Transform.t -> float * float -> float * float
      val transform_rect :
        OcsfmlGraphics.Transform.t ->
        OcsfmlGraphics.FloatRect.t -> OcsfmlGraphics.FloatRect.t
      val combine :
        OcsfmlGraphics.Transform.t ->
        OcsfmlGraphics.Transform.t -> OcsfmlGraphics.Transform.t
      val translate :
        OcsfmlGraphics.Transform.t ->
        float -> float -> OcsfmlGraphics.Transform.t
      val translate_v :
        OcsfmlGraphics.Transform.t ->
        float * float -> OcsfmlGraphics.Transform.t
      val rotate :
        OcsfmlGraphics.Transform.t ->
        ?center_x:float ->
        ?center_y:float -> float -> OcsfmlGraphics.Transform.t
      val rotate_v :
        OcsfmlGraphics.Transform.t ->
        ?center:float * float -> float -> OcsfmlGraphics.Transform.t
      val scale :
        OcsfmlGraphics.Transform.t ->
        ?center_x:float ->
        ?center_y:float -> float -> float -> OcsfmlGraphics.Transform.t
      val scale_v :
        OcsfmlGraphics.Transform.t ->
        ?center:float * float -> float * float -> OcsfmlGraphics.Transform.t
    end
  class const_transform :
    [ `Copy of < rep__sf_Transform : OcsfmlGraphics.Transform.t; .. >
    | `Matrix of
        float * float * float * float * float * float * float * float * float
    | `None ] ->
    object
      val t_transform_base : OcsfmlGraphics.Transform.t
      method destroy : unit
      method rep__sf_Transform : OcsfmlGraphics.Transform.t
      method transform_point : float -> float -> float * float
      method transform_point_v : float * float -> float * float
      method transform_rect :
        OcsfmlGraphics.FloatRect.t -> OcsfmlGraphics.FloatRect.t
    end
  class transform :
    [ `Copy of < rep__sf_Transform : OcsfmlGraphics.Transform.t; .. >
    | `Matrix of
        float * float * float * float * float * float * float * float * float
    | `None ] ->
    object ('a)
      val t_transform_base : OcsfmlGraphics.Transform.t
      method affect : #OcsfmlGraphics.const_transform -> unit
      method combine : #OcsfmlGraphics.const_transform -> unit
      method destroy : unit
      method get_inverse : 'a
      method rep__sf_Transform : OcsfmlGraphics.Transform.t
      method rotate : ?center_x:float -> ?center_y:float -> float -> unit
      method rotate_v : ?center:float * float -> float -> unit
      method scale :
        ?center_x:float -> ?center_y:float -> float -> float -> unit
      method scale_v : ?center:float * float -> float * float -> unit
      method transform_point : float -> float -> float * float
      method transform_point_v : float * float -> float * float
      method transform_rect :
        OcsfmlGraphics.FloatRect.t -> OcsfmlGraphics.FloatRect.t
      method translate : float -> float -> unit
      method translate_v : float * float -> unit
    end
  module Transformable :
    sig
      type t
      val destroy : OcsfmlGraphics.Transformable.t -> unit
      val default : unit -> OcsfmlGraphics.Transformable.t
      val affect :
        OcsfmlGraphics.Transformable.t ->
        OcsfmlGraphics.Transformable.t -> OcsfmlGraphics.Transformable.t
      val set_position :
        OcsfmlGraphics.Transformable.t -> float -> float -> unit
      val set_position_v :
        OcsfmlGraphics.Transformable.t -> float * float -> unit
      val set_scale :
        OcsfmlGraphics.Transformable.t -> float -> float -> unit
      val set_scale_v :
        OcsfmlGraphics.Transformable.t -> float * float -> unit
      val set_origin :
        OcsfmlGraphics.Transformable.t -> float -> float -> unit
      val set_origin_v :
        OcsfmlGraphics.Transformable.t -> float * float -> unit
      val set_rotation : OcsfmlGraphics.Transformable.t -> float -> unit
      val get_position : OcsfmlGraphics.Transformable.t -> float * float
      val get_scale : OcsfmlGraphics.Transformable.t -> float * float
      val get_origin : OcsfmlGraphics.Transformable.t -> float * float
      val get_rotation : OcsfmlGraphics.Transformable.t -> float
      val move : OcsfmlGraphics.Transformable.t -> float -> float -> unit
      val move_v : OcsfmlGraphics.Transformable.t -> float * float -> unit
      val scale : OcsfmlGraphics.Transformable.t -> float -> float -> unit
      val scale_v : OcsfmlGraphics.Transformable.t -> float * float -> unit
      val rotate : OcsfmlGraphics.Transformable.t -> float -> unit
      val get_transform :
        OcsfmlGraphics.Transformable.t -> OcsfmlGraphics.Transform.t
      val get_inverse_transform :
        OcsfmlGraphics.Transformable.t -> OcsfmlGraphics.Transform.t
    end
  class transformable :
    ?position:float * float ->
    ?scale:float * float ->
    ?origin:float * float ->
    ?rotation:float ->
    unit ->
    object ('a)
      val t_transformable_base : OcsfmlGraphics.Transformable.t
      method affect : '-> unit
      method destroy : unit
      method get_inverse_transform :
        OcsfmlGraphics.const_transform OcsfmlGraphics.reference
      method get_origin : float * float
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_transform :
        OcsfmlGraphics.const_transform OcsfmlGraphics.reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_Transformable : OcsfmlGraphics.Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
    end
  module Image :
    sig
      type t
      val destroy : OcsfmlGraphics.Image.t -> unit
      val default : unit -> OcsfmlGraphics.Image.t
      val copy : OcsfmlGraphics.Image.t -> OcsfmlGraphics.Image.t
      val affect :
        OcsfmlGraphics.Image.t ->
        OcsfmlGraphics.Image.t -> OcsfmlGraphics.Image.t
      val create_from_color :
        OcsfmlGraphics.Image.t ->
        ?color:OcsfmlGraphics.Color.t -> int -> int -> unit
      val create_from_pixels :
        OcsfmlGraphics.Image.t -> OcsfmlWindow.pixel_array_type -> unit
      val load_from_file : OcsfmlGraphics.Image.t -> string -> bool
      val load_from_memory :
        OcsfmlGraphics.Image.t -> OcsfmlSystem.raw_data_type -> bool
      val load_from_stream :
        OcsfmlGraphics.Image.t -> OcsfmlSystem.input_stream -> bool
      val save_to_file : OcsfmlGraphics.Image.t -> string -> bool
      val get_size : OcsfmlGraphics.Image.t -> int * int
      val get_pixels_ptr :
        OcsfmlGraphics.Image.t -> OcsfmlWindow.pixel_array_type
      val create_mask_from_color :
        OcsfmlGraphics.Image.t ->
        ?alpha:int -> OcsfmlGraphics.Color.t -> unit
      val copy_image :
        OcsfmlGraphics.Image.t ->
        ?srcRect:OcsfmlGraphics.IntRect.t ->
        ?alpha:bool -> OcsfmlGraphics.Image.t -> int -> int -> unit
      val set_pixel :
        OcsfmlGraphics.Image.t ->
        int -> int -> OcsfmlGraphics.Color.t -> unit
      val get_pixel :
        OcsfmlGraphics.Image.t -> int -> int -> OcsfmlGraphics.Color.t
      val flip_horizontally : OcsfmlGraphics.Image.t -> unit
      val flip_vertically : OcsfmlGraphics.Image.t -> unit
    end
  class image :
    [ `Color of OcsfmlGraphics.Color.t * int * int
    | `Copy of < rep__sf_Image : OcsfmlGraphics.Image.t; .. >
    | `Create of int * int
    | `File of string
    | `None
    | `Stream of OcsfmlSystem.input_stream ] ->
    object ('a)
      val t_image_base : OcsfmlGraphics.Image.t
      method affect : '-> unit
      method copy :
        ?srcRect:OcsfmlGraphics.IntRect.t ->
        ?alpha:bool -> '-> int -> int -> unit
      method create_from_color :
        ?color:OcsfmlGraphics.Color.t -> int -> int -> unit
      method create_from_pixels : OcsfmlWindow.pixel_array_type -> unit
      method create_mask_from_color :
        ?alpha:int -> OcsfmlGraphics.Color.t -> unit
      method destroy : unit
      method flip_horizontally : unit
      method flip_vertically : unit
      method get_pixel : int -> int -> OcsfmlGraphics.Color.t
      method get_pixels_ptr : OcsfmlWindow.pixel_array_type
      method get_size : int * int
      method load_from_file : string -> bool
      method load_from_memory : OcsfmlSystem.raw_data_type -> bool
      method load_from_stream : OcsfmlSystem.input_stream -> bool
      method rep__sf_Image : OcsfmlGraphics.Image.t
      method save_to_file : string -> bool
      method set_pixel : int -> int -> OcsfmlGraphics.Color.t -> unit
    end
  module Texture :
    sig
      type t
      val destroy : OcsfmlGraphics.Texture.t -> unit
      val default : unit -> OcsfmlGraphics.Texture.t
      val copy : OcsfmlGraphics.Texture.t -> OcsfmlGraphics.Texture.t
      val affect :
        OcsfmlGraphics.Texture.t ->
        OcsfmlGraphics.Texture.t -> OcsfmlGraphics.Texture.t
      val create : OcsfmlGraphics.Texture.t -> int -> int -> unit
      val load_from_file :
        OcsfmlGraphics.Texture.t ->
        ?rect:OcsfmlGraphics.IntRect.t -> string -> bool
      val load_from_stream :
        OcsfmlGraphics.Texture.t ->
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlSystem.input_stream -> bool
      val load_from_image :
        OcsfmlGraphics.Texture.t ->
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlGraphics.Image.t -> bool
      val load_from_memory :
        OcsfmlGraphics.Texture.t ->
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlSystem.raw_data_type -> bool
      val get_size : OcsfmlGraphics.Texture.t -> int * int
      val copy_to_image : OcsfmlGraphics.Texture.t -> OcsfmlGraphics.Image.t
      val update_from_image :
        OcsfmlGraphics.Texture.t ->
        ?coords:int * int -> OcsfmlGraphics.Image.t -> unit
      val update_from_window :
        OcsfmlGraphics.Texture.t ->
        ?coords:int * int -> OcsfmlWindow.Window.t -> unit
      val update_from_pixels :
        OcsfmlGraphics.Texture.t ->
        ?coords:int * int -> OcsfmlWindow.pixel_array_type -> unit
      val set_smooth : OcsfmlGraphics.Texture.t -> bool -> unit
      val is_smooth : OcsfmlGraphics.Texture.t -> bool
      val set_repeated : OcsfmlGraphics.Texture.t -> bool -> unit
      val is_repeated : OcsfmlGraphics.Texture.t -> bool
    end
  class const_texture :
    [ `Copy of < rep__sf_Texture : OcsfmlGraphics.Texture.t; .. > | `None ] ->
    object
      val t_texture_base : OcsfmlGraphics.Texture.t
      method copy_to_image : OcsfmlGraphics.image
      method destroy : unit
      method get_size : int * int
      method is_repeated : bool
      method is_smooth : bool
      method rep__sf_Texture : OcsfmlGraphics.Texture.t
    end
  class texture :
    ?rect:OcsfmlGraphics.IntRect.t ->
    [ `Copy of < rep__sf_Texture : OcsfmlGraphics.Texture.t; .. >
    | `File of string
    | `Image of OcsfmlGraphics.image
    | `Memory of OcsfmlSystem.raw_data_type
    | `None
    | `Stream of OcsfmlSystem.input_stream ] ->
    object
      val t_texture_base : OcsfmlGraphics.Texture.t
      method affect : #OcsfmlGraphics.const_texture -> unit
      method copy_to_image : OcsfmlGraphics.image
      method create : int -> int -> unit
      method destroy : unit
      method get_size : int * int
      method is_repeated : bool
      method is_smooth : bool
      method load_from_file :
        ?rect:OcsfmlGraphics.IntRect.t -> string -> bool
      method load_from_image :
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlGraphics.image -> bool
      method load_from_memory :
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlSystem.raw_data_type -> bool
      method load_from_stream :
        ?rect:OcsfmlGraphics.IntRect.t -> OcsfmlSystem.input_stream -> bool
      method rep__sf_Texture : OcsfmlGraphics.Texture.t
      method set_repeated : bool -> unit
      method set_smooth : bool -> unit
      method update_from_image :
        ?coords:int * int -> OcsfmlGraphics.image -> unit
      method update_from_pixels :
        ?coords:int * int -> OcsfmlWindow.pixel_array_type -> unit
      method update_from_window :
        ?coords:int * int -> #OcsfmlWindow.window -> unit
    end
  module CoordinateType : sig type t = Normalized | Pixels end
  val bind_texture :
    ?texture:OcsfmlGraphics.texture ->
    ?cordinate_type:OcsfmlGraphics.CoordinateType.t -> unit -> unit
  val get_maximum_texture_size : unit -> int
  module Glyph :
    sig
      type t = {
        advance : int;
        bounds : OcsfmlGraphics.IntRect.t;
        texture_rect : OcsfmlGraphics.IntRect.t;
      }
    end
  module Font :
    sig
      type t
      val destroy : OcsfmlGraphics.Font.t -> unit
      val default : unit -> OcsfmlGraphics.Font.t
      val copy : OcsfmlGraphics.Font.t -> OcsfmlGraphics.Font.t
      val affect :
        OcsfmlGraphics.Font.t ->
        OcsfmlGraphics.Font.t -> OcsfmlGraphics.Font.t
      val load_from_file : OcsfmlGraphics.Font.t -> string -> bool
      val load_from_memory :
        OcsfmlGraphics.Font.t -> OcsfmlSystem.raw_data_type -> bool
      val load_from_stream :
        OcsfmlGraphics.Font.t -> #OcsfmlSystem.input_stream -> bool
      val get_glyph :
        OcsfmlGraphics.Font.t -> int -> int -> bool -> OcsfmlGraphics.Glyph.t
      val get_kerning : OcsfmlGraphics.Font.t -> int -> int -> int -> int
      val get_line_spacing : OcsfmlGraphics.Font.t -> int -> int
      val get_texture :
        OcsfmlGraphics.Font.t -> int -> OcsfmlGraphics.Texture.t
    end
  class const_font :
    [ `Copy of < rep__sf_Font : OcsfmlGraphics.Font.t; .. > | `None ] ->
    object
      val t_font_base : OcsfmlGraphics.Font.t
      method destroy : unit
      method get_glyph : int -> int -> bool -> OcsfmlGraphics.Glyph.t
      method get_kerning : int -> int -> int -> int
      method get_line_spacing : int -> int
      method get_texture :
        int -> OcsfmlGraphics.const_texture OcsfmlGraphics.reference
      method rep__sf_Font : OcsfmlGraphics.Font.t
    end
  class font :
    [ `Copy of < rep__sf_Font : OcsfmlGraphics.Font.t; .. >
    | `File of string
    | `Memory of OcsfmlSystem.raw_data_type
    | `None
    | `Stream of OcsfmlSystem.input_stream ] ->
    object
      val t_font_base : OcsfmlGraphics.Font.t
      method affect : #OcsfmlGraphics.const_font -> unit
      method destroy : unit
      method get_glyph : int -> int -> bool -> OcsfmlGraphics.Glyph.t
      method get_kerning : int -> int -> int -> int
      method get_line_spacing : int -> int
      method get_texture :
        int -> OcsfmlGraphics.const_texture OcsfmlGraphics.reference
      method load_from_file : string -> bool
      method load_from_memory : OcsfmlSystem.raw_data_type -> bool
      method load_from_stream : #OcsfmlSystem.input_stream -> bool
      method rep__sf_Font : OcsfmlGraphics.Font.t
    end
  module Shader :
    sig
      type t
      val destroy : OcsfmlGraphics.Shader.t -> unit
      val default : unit -> OcsfmlGraphics.Shader.t
      val load_from_file :
        OcsfmlGraphics.Shader.t ->
        ?vertex:string -> ?fragment:string -> unit -> bool
      val load_from_memory :
        OcsfmlGraphics.Shader.t ->
        ?vertex:string -> ?fragment:string -> unit -> bool
      val load_from_stream :
        OcsfmlGraphics.Shader.t ->
        ?vertex:(#OcsfmlSystem.input_stream as 'a) ->
        ?fragment:'-> unit -> bool
      val set_parameter1 : OcsfmlGraphics.Shader.t -> string -> float -> unit
      val set_parameter2 :
        OcsfmlGraphics.Shader.t -> string -> float -> float -> unit
      val set_parameter3 :
        OcsfmlGraphics.Shader.t -> string -> float -> float -> float -> unit
      val set_parameter4 :
        OcsfmlGraphics.Shader.t ->
        string -> float -> float -> float -> float -> unit
      val set_parameter2v :
        OcsfmlGraphics.Shader.t -> string -> float * float -> unit
      val set_parameter3v :
        OcsfmlGraphics.Shader.t -> string -> float * float * float -> unit
      val set_color :
        OcsfmlGraphics.Shader.t -> string -> OcsfmlGraphics.Color.t -> unit
      val set_transform :
        OcsfmlGraphics.Shader.t ->
        string -> OcsfmlGraphics.Transform.t -> unit
      val set_texture :
        OcsfmlGraphics.Shader.t -> string -> OcsfmlGraphics.Texture.t -> unit
      val set_current_texture : OcsfmlGraphics.Shader.t -> string -> unit
    end
  val shader_is_available : unit -> bool
  module ShaderSource :
    sig
      type file
      type stream
      type memory
      type 'a source
      val file :
        string ->
        OcsfmlGraphics.ShaderSource.file OcsfmlGraphics.ShaderSource.source
      val stream :
        #OcsfmlSystem.input_stream ->
        OcsfmlGraphics.ShaderSource.stream OcsfmlGraphics.ShaderSource.source
      val memory : string -> OcsfmlGraphics.ShaderSource.memory
      val get :
        'OcsfmlGraphics.ShaderSource.source ->
        [ `File of string
        | `Memory of string
        | `Stream of OcsfmlSystem.input_stream ]
    end
  class shader :
    ?vertex:'OcsfmlGraphics.ShaderSource.source ->
    ?fragment:'OcsfmlGraphics.ShaderSource.source ->
    unit ->
    object
      val t_shader_base : OcsfmlGraphics.Shader.t
      method destroy : unit
      method load_from_file :
        ?vertex:string -> ?fragment:string -> unit -> bool
      method load_from_memory :
        ?vertex:string -> ?fragment:string -> unit -> bool
      method load_from_stream :
        ?vertex:(#OcsfmlSystem.input_stream as 'b) ->
        ?fragment:'-> unit -> bool
      method rep__sf_Shader : OcsfmlGraphics.Shader.t
      method set_color : string -> OcsfmlGraphics.Color.t -> unit
      method set_current_texture : string -> unit
      method set_parameter :
        string -> ?x:float -> ?y:float -> ?z:float -> float -> unit
      method set_parameter1 : string -> float -> unit
      method set_parameter2 : string -> float -> float -> unit
      method set_parameter2v : string -> float * float -> unit
      method set_parameter3 : string -> float -> float -> float -> unit
      method set_parameter3v : string -> float * float * float -> unit
      method set_parameter4 :
        string -> float -> float -> float -> float -> unit
      method set_texture : string -> #OcsfmlGraphics.const_texture -> unit
      method set_transform : string -> OcsfmlGraphics.transform -> unit
    end
  val shader_bind : ?shader:OcsfmlGraphics.shader -> unit -> unit
  module View :
    sig
      type t
      val destroy : OcsfmlGraphics.View.t -> unit
      val default : unit -> OcsfmlGraphics.View.t
      val create_from_rect :
        OcsfmlGraphics.FloatRect.t -> OcsfmlGraphics.View.t
      val create_from_vectors :
        float * float -> float * float -> OcsfmlGraphics.View.t
      val set_center : OcsfmlGraphics.View.t -> float -> float -> unit
      val set_center_v : OcsfmlGraphics.View.t -> float * float -> unit
      val set_size : OcsfmlGraphics.View.t -> float -> float -> unit
      val set_size_v : OcsfmlGraphics.View.t -> float * float -> unit
      val set_rotation : OcsfmlGraphics.View.t -> float -> unit
      val set_viewport :
        OcsfmlGraphics.View.t -> OcsfmlGraphics.FloatRect.t -> unit
      val reset : OcsfmlGraphics.View.t -> OcsfmlGraphics.FloatRect.t -> unit
      val get_center : OcsfmlGraphics.View.t -> float * float
      val get_size : OcsfmlGraphics.View.t -> float * float
      val get_rotation : OcsfmlGraphics.View.t -> float
      val get_viewport : OcsfmlGraphics.View.t -> OcsfmlGraphics.FloatRect.t
      val move : OcsfmlGraphics.View.t -> float -> float -> unit
      val move_v : OcsfmlGraphics.View.t -> float * float -> unit
      val rotate : OcsfmlGraphics.View.t -> float -> unit
      val zoom : OcsfmlGraphics.View.t -> float -> unit
    end
  class const_view :
    [ `Center of (float * float) * (float * float)
    | `Copy of < rep__sf_View : OcsfmlGraphics.View.t; .. >
    | `None
    | `Rect of OcsfmlGraphics.FloatRect.t ] ->
    object
      val t_view_base : OcsfmlGraphics.View.t
      method destroy : unit
      method get_center : float * float
      method get_rotation : float
      method get_size : float * float
      method get_viewport : OcsfmlGraphics.FloatRect.t
      method rep__sf_View : OcsfmlGraphics.View.t
    end
  class view :
    [ `Center of (float * float) * (float * float)
    | `Copy of < rep__sf_View : OcsfmlGraphics.View.t; .. >
    | `None
    | `Rect of OcsfmlGraphics.FloatRect.t ] ->
    object
      val t_view_base : OcsfmlGraphics.View.t
      method affect : #OcsfmlGraphics.const_view -> unit
      method destroy : unit
      method get_center : float * float
      method get_rotation : float
      method get_size : float * float
      method get_viewport : OcsfmlGraphics.FloatRect.t
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_View : OcsfmlGraphics.View.t
      method reset : OcsfmlGraphics.FloatRect.t -> unit
      method rotate : float -> unit
      method set_center : float -> float -> unit
      method set_center_v : float * float -> unit
      method set_rotation : float -> unit
      method set_size : float -> float -> unit
      method set_size_v : float * float -> unit
      method set_viewport : OcsfmlGraphics.FloatRect.t -> unit
      method zoom : float -> unit
    end
  module Vertex :
    sig
      type t = {
        position : float * float;
        color : OcsfmlGraphics.Color.t;
        tex_coords : float * float;
      }
      val create :
        ?position:float * float ->
        ?color:OcsfmlGraphics.Color.t ->
        ?tex_coords:float * float -> unit -> OcsfmlGraphics.Vertex.t
    end
  module PrimitiveType :
    sig
      type t =
          Points
        | Lines
        | LinesStrip
        | Triangles
        | TrianglesStrip
        | TrianglesFan
        | Quads
    end
  module Drawable :
    sig
      type t
      val destroy : OcsfmlGraphics.Drawable.t -> unit
      val inherits : unit -> OcsfmlGraphics.Drawable.t
    end
  module RenderTarget :
    sig
      type t
      val destroy : OcsfmlGraphics.RenderTarget.t -> unit
      val clear :
        OcsfmlGraphics.RenderTarget.t ->
        ?color:OcsfmlGraphics.Color.t -> unit -> unit
      val draw :
        OcsfmlGraphics.RenderTarget.t ->
        ?blend_mode:OcsfmlGraphics.BlendMode.t ->
        ?transform:OcsfmlGraphics.Transform.t ->
        ?texture:OcsfmlGraphics.Texture.t ->
        ?shader:OcsfmlGraphics.Shader.t -> OcsfmlGraphics.Drawable.t -> unit
      val get_size : OcsfmlGraphics.RenderTarget.t -> int * int
      val set_view :
        OcsfmlGraphics.RenderTarget.t -> OcsfmlGraphics.View.t -> unit
      val get_view : OcsfmlGraphics.RenderTarget.t -> OcsfmlGraphics.View.t
      val get_default_view :
        OcsfmlGraphics.RenderTarget.t -> OcsfmlGraphics.View.t
      val get_viewport :
        OcsfmlGraphics.RenderTarget.t ->
        OcsfmlGraphics.View.t -> OcsfmlGraphics.IntRect.t
      val map_pixel_to_coords :
        OcsfmlGraphics.RenderTarget.t ->
        ?view:OcsfmlGraphics.View.t -> int * int -> float * float
      val map_coords_to_pixel :
        OcsfmlGraphics.RenderTarget.t ->
        ?view:OcsfmlGraphics.View.t -> float * float -> int * int
      val push_gl_states : OcsfmlGraphics.RenderTarget.t -> unit
      val pop_gl_states : OcsfmlGraphics.RenderTarget.t -> unit
      val reset_gl_states : OcsfmlGraphics.RenderTarget.t -> unit
    end
  class drawable :
    ?overloaded:[ `draw ] ->
    OcsfmlGraphics.Drawable.t ->
    object
      val t_drawable : OcsfmlGraphics.Drawable.t
      method destroy : unit
      method private draw :
        OcsfmlGraphics.render_target ->
        OcsfmlGraphics.BlendMode.t ->
        OcsfmlGraphics.transform ->
        OcsfmlGraphics.texture -> OcsfmlGraphics.shader -> unit
      method rep__sf_Drawable : OcsfmlGraphics.Drawable.t
    end
  and render_target :
    OcsfmlGraphics.RenderTarget.t ->
    object
      val t_render_target : OcsfmlGraphics.RenderTarget.t
      method clear : ?color:OcsfmlGraphics.Color.t -> unit -> unit
      method destroy : unit
      method draw :
        ?blend_mode:OcsfmlGraphics.BlendMode.t ->
        ?transform:OcsfmlGraphics.transform ->
        ?texture:OcsfmlGraphics.texture ->
        ?shader:OcsfmlGraphics.shader ->
        < rep__sf_Drawable : OcsfmlGraphics.Drawable.t; .. > -> unit
      method get_default_view :
        OcsfmlGraphics.const_view OcsfmlGraphics.reference
      method get_size : int * int
      method get_view : OcsfmlGraphics.const_view OcsfmlGraphics.reference
      method get_viewport :
        #OcsfmlGraphics.const_view -> OcsfmlGraphics.IntRect.t
      method map_coords_to_pixel :
        ?view:#OcsfmlGraphics.const_view -> float * float -> int * int
      method map_pixel_to_coords :
        ?view:#OcsfmlGraphics.const_view -> int * int -> float * float
      method pop_gl_states : unit
      method push_gl_states : unit
      method rep__sf_RenderTarget : OcsfmlGraphics.RenderTarget.t
      method reset_gl_states : unit
      method set_view : #OcsfmlGraphics.const_view -> unit
    end
  exception CreateFailure
  module RenderTexture :
    sig
      type t
      val destroy : OcsfmlGraphics.RenderTexture.t -> unit
      val to_render_target :
        OcsfmlGraphics.RenderTexture.t -> OcsfmlGraphics.RenderTarget.t
      val default : unit -> OcsfmlGraphics.RenderTexture.t
      val create :
        OcsfmlGraphics.RenderTexture.t ->
        ?depht_buffer:bool -> int -> int -> bool
      val set_smooth : OcsfmlGraphics.RenderTexture.t -> bool -> unit
      val is_smooth : OcsfmlGraphics.RenderTexture.t -> bool
      val set_active :
        OcsfmlGraphics.RenderTexture.t -> ?active:bool -> unit -> bool
      val display : OcsfmlGraphics.RenderTexture.t -> unit
      val get_texture :
        OcsfmlGraphics.RenderTexture.t -> OcsfmlGraphics.Texture.t
    end
  class render_texture :
    ?depht_buffer:bool ->
    int ->
    int ->
    object
      val t_render_target : RenderTarget.t
      val t_render_texture_base : OcsfmlGraphics.RenderTexture.t
      method clear : ?color:Color.t -> unit -> unit
      method create : ?depht_buffer:bool -> int -> int -> bool
      method destroy : unit
      method display : unit
      method draw :
        ?blend_mode:BlendMode.t ->
        ?transform:transform ->
        ?texture:texture ->
        ?shader:shader -> < rep__sf_Drawable : Drawable.t; .. > -> unit
      method get_default_view : const_view reference
      method get_size : int * int
      method get_texture :
        OcsfmlGraphics.const_texture OcsfmlGraphics.reference
      method get_view : const_view reference
      method get_viewport : #const_view -> IntRect.t
      method is_smooth : bool
      method map_coords_to_pixel :
        ?view:#const_view -> float * float -> int * int
      method map_pixel_to_coords :
        ?view:#const_view -> int * int -> float * float
      method pop_gl_states : unit
      method push_gl_states : unit
      method rep__sf_RenderTarget : RenderTarget.t
      method rep__sf_RenderTexture : OcsfmlGraphics.RenderTexture.t
      method reset_gl_states : unit
      method set_active : ?active:bool -> unit -> bool
      method set_smooth : bool -> unit
      method set_view : #const_view -> unit
    end
  module RenderWindow :
    sig
      type t
      val destroy : OcsfmlGraphics.RenderWindow.t -> unit
      val to_window_base :
        OcsfmlGraphics.RenderWindow.t -> OcsfmlWindow.Window.t
      val to_render_target :
        OcsfmlGraphics.RenderWindow.t -> OcsfmlGraphics.RenderTarget.t
      val default : unit -> OcsfmlGraphics.RenderWindow.t
      val create :
        ?style:OcsfmlWindow.Window.style list ->
        ?context:OcsfmlWindow.ContextSettings.t ->
        OcsfmlWindow.VideoMode.t -> string -> OcsfmlGraphics.RenderWindow.t
      val capture : OcsfmlGraphics.RenderWindow.t -> OcsfmlGraphics.Image.t
    end
  class render_window :
    ?style:OcsfmlWindow.Window.style list ->
    ?context:OcsfmlWindow.ContextSettings.t ->
    OcsfmlWindow.VideoMode.t ->
    string ->
    object
      val t_render_target : RenderTarget.t
      val t_render_window_base : OcsfmlGraphics.RenderWindow.t
      val t_window_base : OcsfmlWindow.WindowBase.t
      method capture : OcsfmlGraphics.image
      method clear : ?color:Color.t -> unit -> unit
      method close : unit
      method create :
        ?style:OcsfmlWindow.Window.style list ->
        ?context:OcsfmlWindow.ContextSettings.t ->
        OcsfmlWindow.VideoMode.t -> string -> unit
      method destroy : unit
      method display : unit
      method draw :
        ?blend_mode:BlendMode.t ->
        ?transform:transform ->
        ?texture:texture ->
        ?shader:shader -> < rep__sf_Drawable : Drawable.t; .. > -> unit
      method get_default_view : const_view reference
      method get_height : int
      method get_position : int * int
      method get_settings : OcsfmlWindow.ContextSettings.t
      method get_size : int * int
      method get_view : const_view reference
      method get_viewport : #const_view -> IntRect.t
      method get_width : int
      method is_open : bool
      method map_coords_to_pixel :
        ?view:#const_view -> float * float -> int * int
      method map_pixel_to_coords :
        ?view:#const_view -> int * int -> float * float
      method poll_event : OcsfmlWindow.Event.t option
      method pop_gl_states : unit
      method push_gl_states : unit
      method rep__sf_RenderTarget : RenderTarget.t
      method rep__sf_RenderWindow : OcsfmlGraphics.RenderWindow.t
      method rep__sf_Window : OcsfmlWindow.WindowBase.t
      method reset_gl_states : unit
      method set_active : ?active:bool -> unit -> bool
      method set_framerate_limit : int -> unit
      method set_icon : OcsfmlWindow.pixel_array_type -> unit
      method set_joystick_threshold : float -> unit
      method set_key_repeat_enabled : bool -> unit
      method set_mouse_cursor_visible : bool -> unit
      method set_position : int -> int -> unit
      method set_position_v : int * int -> unit
      method set_size : int -> int -> unit
      method set_size_v : int * int -> unit
      method set_title : string -> unit
      method set_vertical_sync_enabled : bool -> unit
      method set_view : #const_view -> unit
      method set_visible : bool -> unit
      method wait_event : OcsfmlWindow.Event.t option
    end
  module Shape :
    sig
      type t
      val destroy : OcsfmlGraphics.Shape.t -> unit
      val to_transformable :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Transformable.t
      val to_drawable : OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Drawable.t
      val set_texture :
        OcsfmlGraphics.Shape.t ->
        ?texture:OcsfmlGraphics.Texture.t -> ?reset_rect:bool -> unit -> unit
      val set_texture_rect :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.IntRect.t -> unit
      val set_fill_color :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Color.t -> unit
      val set_outline_color :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Color.t -> unit
      val set_outline_thickness : OcsfmlGraphics.Shape.t -> float -> unit
      val get_texture :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Texture.t option
      val get_texture_rect :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.IntRect.t
      val get_fill_color : OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Color.t
      val get_outline_color :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.Color.t
      val get_outline_thickness : OcsfmlGraphics.Shape.t -> float
      val get_point_count : OcsfmlGraphics.Shape.t -> int
      val get_point : OcsfmlGraphics.Shape.t -> int -> float * float
      val get_local_bounds :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.FloatRect.t
      val get_global_bounds :
        OcsfmlGraphics.Shape.t -> OcsfmlGraphics.FloatRect.t
    end
  class shape :
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?texture:#OcsfmlGraphics.const_texture ->
    ?texture_rect:OcsfmlGraphics.IntRect.t ->
    ?fill_color:OcsfmlGraphics.Color.t ->
    ?outline_color:OcsfmlGraphics.Color.t ->
    ?outline_thickness:float ->
    OcsfmlGraphics.Shape.t ->
    object ('a)
      val t_drawable : Drawable.t
      val t_shape_base : OcsfmlGraphics.Shape.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_fill_color : OcsfmlGraphics.Color.t
      method get_global_bounds : OcsfmlGraphics.FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : OcsfmlGraphics.FloatRect.t
      method get_origin : float * float
      method get_outline_color : OcsfmlGraphics.Color.t
      method get_outline_thickness : float
      method get_point : int -> float * float
      method get_point_count : int
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_texture :
        OcsfmlGraphics.const_texture OcsfmlGraphics.reference option
      method get_texture_rect : OcsfmlGraphics.IntRect.t
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_Drawable : Drawable.t
      method rep__sf_Shape : OcsfmlGraphics.Shape.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_fill_color : OcsfmlGraphics.Color.t -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_outline_color : OcsfmlGraphics.Color.t -> unit
      method set_outline_thickness : float -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_texture :
        ?texture:#OcsfmlGraphics.const_texture ->
        ?reset_rect:bool -> unit -> unit
      method set_texture_rect : OcsfmlGraphics.IntRect.t -> unit
    end
  module RectangleShape :
    sig
      type t
      val destroy : OcsfmlGraphics.RectangleShape.t -> unit
      val to_shape :
        OcsfmlGraphics.RectangleShape.t -> OcsfmlGraphics.Shape.t
      val default : unit -> OcsfmlGraphics.RectangleShape.t
      val from_size : float * float -> OcsfmlGraphics.RectangleShape.t
      val set_size : OcsfmlGraphics.RectangleShape.t -> float * float
      val get_size : OcsfmlGraphics.RectangleShape.t -> float * float
    end
  class rectangle_shape :
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?texture:#OcsfmlGraphics.const_texture ->
    ?texture_rect:OcsfmlGraphics.IntRect.t ->
    ?fill_color:OcsfmlGraphics.Color.t ->
    ?outline_color:OcsfmlGraphics.Color.t ->
    ?outline_thickness:float ->
    ?size:float * float ->
    unit ->
    object ('a)
      val t_drawable : Drawable.t
      val t_rectangle_shape_base : OcsfmlGraphics.RectangleShape.t
      val t_shape_base : Shape.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_fill_color : Color.t
      method get_global_bounds : FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : FloatRect.t
      method get_origin : float * float
      method get_outline_color : Color.t
      method get_outline_thickness : float
      method get_point : int -> float * float
      method get_point_count : int
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_size : float * float
      method get_texture : const_texture reference option
      method get_texture_rect : IntRect.t
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_Drawable : Drawable.t
      method rep__sf_RectangleShape : OcsfmlGraphics.RectangleShape.t
      method rep__sf_Shape : Shape.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_fill_color : Color.t -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_outline_color : Color.t -> unit
      method set_outline_thickness : float -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_size : float * float
      method set_texture :
        ?texture:#const_texture -> ?reset_rect:bool -> unit -> unit
      method set_texture_rect : IntRect.t -> unit
    end
  module CircleShape :
    sig
      type t
      val destroy : OcsfmlGraphics.CircleShape.t -> unit
      val to_shape : OcsfmlGraphics.CircleShape.t -> OcsfmlGraphics.Shape.t
      val default : unit -> OcsfmlGraphics.CircleShape.t
      val from_radius : float -> OcsfmlGraphics.CircleShape.t
      val set_radius : OcsfmlGraphics.CircleShape.t -> float -> unit
      val get_radius : OcsfmlGraphics.CircleShape.t -> float
      val set_point_count : OcsfmlGraphics.CircleShape.t -> int -> unit
    end
  class circle_shape :
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?texture:#OcsfmlGraphics.const_texture ->
    ?texture_rect:OcsfmlGraphics.IntRect.t ->
    ?fill_color:OcsfmlGraphics.Color.t ->
    ?outline_color:OcsfmlGraphics.Color.t ->
    ?outline_thickness:float ->
    ?point_count:int ->
    ?radius:float ->
    unit ->
    object ('a)
      val t_circle_shape_base : OcsfmlGraphics.CircleShape.t
      val t_drawable : Drawable.t
      val t_shape_base : Shape.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_fill_color : Color.t
      method get_global_bounds : FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : FloatRect.t
      method get_origin : float * float
      method get_outline_color : Color.t
      method get_outline_thickness : float
      method get_point : int -> float * float
      method get_point_count : int
      method get_position : float * float
      method get_radius : float
      method get_rotation : float
      method get_scale : float * float
      method get_texture : const_texture reference option
      method get_texture_rect : IntRect.t
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_CircleShape : OcsfmlGraphics.CircleShape.t
      method rep__sf_Drawable : Drawable.t
      method rep__sf_Shape : Shape.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_fill_color : Color.t -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_outline_color : Color.t -> unit
      method set_outline_thickness : float -> unit
      method set_point_count : int -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_radius : float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_texture :
        ?texture:#const_texture -> ?reset_rect:bool -> unit -> unit
      method set_texture_rect : IntRect.t -> unit
    end
  module ConvexShape :
    sig
      type t
      val destroy : OcsfmlGraphics.ConvexShape.t -> unit
      val to_shape : OcsfmlGraphics.ConvexShape.t -> OcsfmlGraphics.Shape.t
      val default : unit -> OcsfmlGraphics.ConvexShape.t
      val from_point_count : int -> OcsfmlGraphics.ConvexShape.t
      val set_point_count : OcsfmlGraphics.ConvexShape.t -> int -> unit
      val set_point :
        OcsfmlGraphics.ConvexShape.t -> int -> float * float -> unit
    end
  class convex_shape :
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?texture:#OcsfmlGraphics.const_texture ->
    ?texture_rect:OcsfmlGraphics.IntRect.t ->
    ?fill_color:OcsfmlGraphics.Color.t ->
    ?outline_color:OcsfmlGraphics.Color.t ->
    ?outline_thickness:float ->
    ?points:(float * float) list ->
    unit ->
    object ('a)
      val t_convex_shape_base : OcsfmlGraphics.ConvexShape.t
      val t_drawable : Drawable.t
      val t_shape_base : Shape.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_fill_color : Color.t
      method get_global_bounds : FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : FloatRect.t
      method get_origin : float * float
      method get_outline_color : Color.t
      method get_outline_thickness : float
      method get_point : int -> float * float
      method get_point_count : int
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_texture : const_texture reference option
      method get_texture_rect : IntRect.t
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_ConvexShape : OcsfmlGraphics.ConvexShape.t
      method rep__sf_Drawable : Drawable.t
      method rep__sf_Shape : Shape.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_fill_color : Color.t -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_outline_color : Color.t -> unit
      method set_outline_thickness : float -> unit
      method set_point : int -> float * float -> unit
      method set_point_count : int -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_texture :
        ?texture:#const_texture -> ?reset_rect:bool -> unit -> unit
      method set_texture_rect : IntRect.t -> unit
    end
  module TextStyle : sig type t = Bold | Italic | Underline end
  module Text :
    sig
      type t
      val destroy : OcsfmlGraphics.Text.t -> unit
      val to_transformable :
        OcsfmlGraphics.Text.t -> OcsfmlGraphics.Transformable.t
      val to_drawable : OcsfmlGraphics.Text.t -> OcsfmlGraphics.Drawable.t
      val default : unit -> OcsfmlGraphics.Text.t
      val create :
        string -> OcsfmlGraphics.Font.t -> int -> OcsfmlGraphics.Text.t
      val set_string : OcsfmlGraphics.Text.t -> string -> unit
      val set_font : OcsfmlGraphics.Text.t -> OcsfmlGraphics.Font.t -> unit
      val set_character_size : OcsfmlGraphics.Text.t -> int -> unit
      val set_style :
        OcsfmlGraphics.Text.t -> OcsfmlGraphics.TextStyle.t list -> unit
      val set_color : OcsfmlGraphics.Text.t -> OcsfmlGraphics.Color.t -> unit
      val get_string : OcsfmlGraphics.Text.t -> string
      val get_font : OcsfmlGraphics.Text.t -> OcsfmlGraphics.Font.t
      val get_character_size : OcsfmlGraphics.Text.t -> int
      val get_style :
        OcsfmlGraphics.Text.t -> OcsfmlGraphics.TextStyle.t list
      val find_character_pos : OcsfmlGraphics.Text.t -> int -> float * float
      val get_local_bounds :
        OcsfmlGraphics.Text.t -> OcsfmlGraphics.FloatRect.t
      val get_global_bounds :
        OcsfmlGraphics.Text.t -> OcsfmlGraphics.FloatRect.t
    end
  class text :
    ?string:string ->
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?color:OcsfmlGraphics.Color.t ->
    ?font:OcsfmlGraphics.font ->
    ?character_size:int ->
    ?style:OcsfmlGraphics.TextStyle.t list ->
    unit ->
    object ('a)
      val t_drawable : Drawable.t
      val t_text_base : OcsfmlGraphics.Text.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method find_character_pos : int -> float * float
      method get_character_size : int
      method get_font : OcsfmlGraphics.const_font OcsfmlGraphics.reference
      method get_global_bounds : OcsfmlGraphics.FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : OcsfmlGraphics.FloatRect.t
      method get_origin : float * float
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_string : string
      method get_style : OcsfmlGraphics.TextStyle.t list
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_Drawable : Drawable.t
      method rep__sf_Text : OcsfmlGraphics.Text.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_character_size : int -> unit
      method set_color : OcsfmlGraphics.Color.t -> unit
      method set_font : #OcsfmlGraphics.const_font -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_string : string -> unit
      method set_style : OcsfmlGraphics.TextStyle.t list -> unit
    end
  module Sprite :
    sig
      type t
      val destroy : OcsfmlGraphics.Sprite.t -> unit
      val to_transformable :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.Transformable.t
      val to_drawable : OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.Drawable.t
      val default : unit -> OcsfmlGraphics.Sprite.t
      val create_from_texture :
        OcsfmlGraphics.Texture.t -> OcsfmlGraphics.Sprite.t
      val set_texture :
        OcsfmlGraphics.Sprite.t ->
        ?resize:bool -> OcsfmlGraphics.Texture.t -> unit
      val set_texture_rect :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.IntRect.t -> unit
      val set_color :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.Color.t -> unit
      val get_texture :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.Texture.t option
      val get_texture_rect :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.IntRect.t
      val get_color : OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.Color.t
      val get_local_bounds :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.FloatRect.t
      val get_global_bounds :
        OcsfmlGraphics.Sprite.t -> OcsfmlGraphics.FloatRect.t
    end
  class sprite :
    ?texture:#OcsfmlGraphics.const_texture ->
    ?position:float * float ->
    ?scale:float * float ->
    ?rotation:float ->
    ?origin:float * float ->
    ?color:OcsfmlGraphics.Color.t ->
    ?texture_rect:OcsfmlGraphics.IntRect.t ->
    unit ->
    object ('a)
      val t_drawable : Drawable.t
      val t_sprite_base : OcsfmlGraphics.Sprite.t
      val t_transformable_base : Transformable.t
      method affect : '-> unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_color : OcsfmlGraphics.Color.t
      method get_global_bounds : OcsfmlGraphics.FloatRect.t
      method get_inverse_transform : const_transform reference
      method get_local_bounds : OcsfmlGraphics.FloatRect.t
      method get_origin : float * float
      method get_position : float * float
      method get_rotation : float
      method get_scale : float * float
      method get_texture :
        OcsfmlGraphics.const_texture OcsfmlGraphics.reference option
      method get_texture_rect : OcsfmlGraphics.IntRect.t
      method get_transform : const_transform reference
      method move : float -> float -> unit
      method move_v : float * float -> unit
      method rep__sf_Drawable : Drawable.t
      method rep__sf_Sprite : OcsfmlGraphics.Sprite.t
      method rep__sf_Transformable : Transformable.t
      method rotate : float -> unit
      method scale : float -> float -> unit
      method scale_v : float * float -> unit
      method set_color : OcsfmlGraphics.Color.t -> unit
      method set_origin : float -> float -> unit
      method set_origin_v : float * float -> unit
      method set_position : float -> float -> unit
      method set_position_v : float * float -> unit
      method set_rotation : float -> unit
      method set_scale : float -> float -> unit
      method set_scale_v : float * float -> unit
      method set_texture :
        ?resize:bool -> #OcsfmlGraphics.const_texture -> unit
      method set_texture_rect : OcsfmlGraphics.IntRect.t -> unit
    end
  module VertexArray :
    sig
      type t
      val destroy : OcsfmlGraphics.VertexArray.t -> unit
      val to_drawable :
        OcsfmlGraphics.VertexArray.t -> OcsfmlGraphics.Drawable.t
      val default : unit -> OcsfmlGraphics.VertexArray.t
      val get_vertex_count : OcsfmlGraphics.VertexArray.t -> int
      val set_at_index :
        OcsfmlGraphics.VertexArray.t ->
        int -> OcsfmlGraphics.Vertex.t -> unit
      val get_at_index :
        OcsfmlGraphics.VertexArray.t -> int -> OcsfmlGraphics.Vertex.t
      val clear : OcsfmlGraphics.VertexArray.t -> unit
      val resize : OcsfmlGraphics.VertexArray.t -> int -> unit
      val append :
        OcsfmlGraphics.VertexArray.t -> OcsfmlGraphics.Vertex.t -> unit
      val set_primitive_type :
        OcsfmlGraphics.VertexArray.t ->
        OcsfmlGraphics.PrimitiveType.t -> unit
      val get_primitive_type :
        OcsfmlGraphics.VertexArray.t -> OcsfmlGraphics.PrimitiveType.t
      val get_bounds :
        OcsfmlGraphics.VertexArray.t -> OcsfmlGraphics.FloatRect.t
    end
  class vertex_array :
    ?primitive_type:OcsfmlGraphics.PrimitiveType.t ->
    OcsfmlGraphics.Vertex.t list ->
    object
      val t_drawable : Drawable.t
      val t_vertex_array_base : OcsfmlGraphics.VertexArray.t
      method append : OcsfmlGraphics.Vertex.t -> unit
      method clear : unit
      method destroy : unit
      method private draw :
        render_target ->
        BlendMode.t -> transform -> texture -> shader -> unit
      method get_at_index : int -> OcsfmlGraphics.Vertex.t
      method get_bounds : OcsfmlGraphics.FloatRect.t
      method get_primitive_type : OcsfmlGraphics.PrimitiveType.t
      method get_vertex_count : int
      method rep__sf_Drawable : Drawable.t
      method rep__sf_VertexArray : OcsfmlGraphics.VertexArray.t
      method resize : int -> unit
      method set_at_index : int -> OcsfmlGraphics.Vertex.t -> unit
      method set_primitive_type : OcsfmlGraphics.PrimitiveType.t -> unit
    end
end