packages feed

nanovg-0.2.0.0: src/NanoVG/Internal/Style.chs

module NanoVG.Internal.Style where

import Foreign.C.Types
import Foreign.Marshal.Utils

import NanoVG.Internal.Context
import NanoVG.Internal.Color
import NanoVG.Internal.Paint

#include "nanovg.h"
#include "nanovg_wrapper.h"

{#pointer *NVGcontext as Context newtype nocode#}
{#pointer *NVGcolor as ColorPtr -> Color nocode#}
{#pointer *NVGpaint as PaintPtr -> Paint nocode#}

{#enum NVGlineCap as LineCap
         {underscoreToCase} with prefix = "NVG_"
         deriving (Show,Read,Eq,Ord)#}

-- | Sets current stroke style to a solid color.
{#fun unsafe nvgStrokeColor_ as strokeColor
        {`Context',with*`Color'} -> `()'#}

-- | Sets current stroke style to a paint, which can be a one of the gradients or a pattern.
{#fun unsafe nvgStrokePaint_ as strokePaint
        {`Context',with*`Paint'} -> `()'#}

-- | Sets current fill style to a solid color.
{#fun unsafe nvgFillColor_ as fillColor
        {`Context',with*`Color'} -> `()'#}

-- | Sets current fill style to a paint, which can be a one of the gradients or a pattern.
{#fun unsafe nvgFillPaint_ as fillPaint
        {`Context',with*`Paint'} -> `()'#}

-- | Sets the miter limit of the stroke style.
-- Miter limit controls when a sharp corner is beveled.
{#fun unsafe nvgMiterLimit as miterLimit
        {`Context',`CFloat'} -> `()'#}

-- | Sets the stroke width of the stroke style.
{#fun unsafe nvgStrokeWidth as strokeWidth
        {`Context',`CFloat'} -> `()'#}

-- | Sets how the end of the line (cap) is drawn,
-- Can be one of: 'Butt' (default), 'Round', 'Square'.
{#fun unsafe nvgLineCap as lineCap
        {`Context',`LineCap'} -> `()'#}

-- | Sets how sharp path corners are drawn.
-- Can be one of 'Miter' (default), 'Round', 'Bevel.
{#fun unsafe nvgLineJoin as lineJoin
        {`Context',`LineCap'} -> `()'#}

-- | Sets the transparency applied to all rendered shapes.
-- Already transparent paths will get proportionally more transparent as well.
{#fun unsafe nvgGlobalAlpha as globalAlpha
        {`Context',`CFloat'} -> `()'#}