packages feed

dear-imgui-raw-1.0.0: src/DearImGui/Raw/Enums/ImDrawFlags.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.Enums.ImDrawFlags
  ( ImDrawFlags
  , pattern AAFill
  , pattern AALineEnds
  , pattern AALines
  , pattern AllowInFrameScope_
  , pattern AllowInPushScope_
  , pattern AllowTexForRoundCorners_
  , pattern CapSquare
  , pattern Closed
  , pattern InvalidMask_
  , pattern JoinMiter
  , pattern None
  , pattern RoundAll
  , pattern RoundBottom
  , pattern RoundBottomLeft
  , pattern RoundBottomRight
  , pattern RoundLeft
  , pattern RoundMask_
  , pattern RoundNone
  , pattern RoundRight
  , pattern RoundTop
  , pattern RoundTopLeft
  , pattern RoundTopRight
  , pattern StrokeCenter
  , pattern StrokeCenterBiased
  , pattern StrokeInside
  , pattern StrokeLegacy
  , pattern StrokeMask_
  , pattern StrokeOutside
  , pattern TextNoPixelSnap
  , pattern UseTexForRoundCorners
  , pattern UseVtxOffset
  ) where

import Foreign.C.Types

#include "dcimgui_nodefaultargfunctions.h"

-- typedefs

-- | Flags for ImDrawList functions
type ImDrawFlags = CInt

-- enums

pattern None :: ImDrawFlags
pattern None = #{const ImDrawFlags_None}

-- | - Rounding default to ImDrawFlags_RoundAll when 'rounding > 0'.
-- - So you only need to use the ImDrawFlags_RoundXXX flags if you want a special configuration (e.g. a rectangle with one rounded corner).
-- Rounding for AddRectXXX(), PathRect() ------ // Prim/Scope?
-- OK   --    // Round top-left corner only (when 'rounding > 0.0f', we default to all corners).
pattern RoundTopLeft :: ImDrawFlags
pattern RoundTopLeft = #{const ImDrawFlags_RoundTopLeft}

-- | OK   --    // Round top-right corner only (when 'rounding > 0.0f', we default to all corners).
pattern RoundTopRight :: ImDrawFlags
pattern RoundTopRight = #{const ImDrawFlags_RoundTopRight}

-- | OK   --    // Round bottom-left corner only (when 'rounding > 0.0f', we default to all corners).
pattern RoundBottomLeft :: ImDrawFlags
pattern RoundBottomLeft = #{const ImDrawFlags_RoundBottomLeft}

-- | OK   --    // Round bottom-right corner only (when 'rounding > 0.0f', we default to all corners).
pattern RoundBottomRight :: ImDrawFlags
pattern RoundBottomRight = #{const ImDrawFlags_RoundBottomRight}

-- | OK   --    // Disable rounding even when 'rounding > 0.0f'. This value is NOT zero, it is NOT an implicit flag!
pattern RoundNone :: ImDrawFlags
pattern RoundNone = #{const ImDrawFlags_RoundNone}

-- | (Default!!)
pattern RoundAll :: ImDrawFlags
pattern RoundAll = #{const ImDrawFlags_RoundAll}

pattern RoundTop :: ImDrawFlags
pattern RoundTop = #{const ImDrawFlags_RoundTop}

pattern RoundBottom :: ImDrawFlags
pattern RoundBottom = #{const ImDrawFlags_RoundBottom}

pattern RoundLeft :: ImDrawFlags
pattern RoundLeft = #{const ImDrawFlags_RoundLeft}

pattern RoundRight :: ImDrawFlags
pattern RoundRight = #{const ImDrawFlags_RoundRight}

-- | Stroke Options ----------------------------- // Prim/Scope?
-- OK   --     // PathStroke(), AddPolyline(): specify that shape should be closed.
pattern Closed :: ImDrawFlags
pattern Closed = #{const ImDrawFlags_Closed}

-- | OK   --     // PathStroke(), AddPolyline(): use miter joins/corners only. This assumes that the input polyline does not have corners sharper than 90 degrees. Slightly faster.
pattern JoinMiter :: ImDrawFlags
pattern JoinMiter = #{const ImDrawFlags_JoinMiter}

-- | OK   --     // PathStroke(), AddPolyline(): use square cap line ends.
pattern CapSquare :: ImDrawFlags
pattern CapSquare = #{const ImDrawFlags_CapSquare}

-- | About Stroke Ends:
-- - Rendering is optimized for fast pixel-perfect UI, so line ends are not anti-aliased by default. It's cheaper (we can emit less vertices).
-- - For more free-form drawings, light graphs and markers, or when using thick strokes: you can turn them on using the ImDrawFlags_AALineEnds flag.
-- - See 'Demo->Examples->Custom Rendering' to interactively toy with those flags.
-- - 'OK*' indicates using this at the AddXXX() call site is unlikely: it would only makes sense if (1) the option is disabled in style/scope and (2) you want to forcefully enable it for a single primitives. Possible but unlikely! Only supported for functions taking flags inputs.
-- Stroke/Fill Anti-aliasing ------------------ // Prim/Scope?
-- OK*  OK(1)  // Enable anti-aliasing for Filled shapes.
pattern AAFill :: ImDrawFlags
pattern AAFill = #{const ImDrawFlags_AAFill}

-- | OK*  OK(1)  // Enable anti-aliasing for Strokes (lines, borders).
pattern AALines :: ImDrawFlags
pattern AALines = #{const ImDrawFlags_AALines}

-- | OK   OK(0)  // Enable anti-aliasing for Strokes Ends. Requires AALines to also be enabled. Useful on thick strokes or for precise continuity of multiple lines. A little more costly.
pattern AALineEnds :: ImDrawFlags
pattern AALineEnds = #{const ImDrawFlags_AALineEnds}

-- | About Stroke Position:
-- - Read https://github.com/ocornut/imgui/wiki/Draw-List (this guide includes a precise list of differences between 1.92.9 and 1.93.0)
-- - Read https://github.com/ocornut/imgui/wiki/Pixel-Perfect-Rendering
-- Stroke Position relative to shape outline -- // Prim/Scope?
-- OK   --     // Draw stroke inside of the shape outline (default for closed shapes and AddLineH, AddLineV functions)
pattern StrokeInside :: ImDrawFlags
pattern StrokeInside = #{const ImDrawFlags_StrokeInside}

-- | OK   --     // Draw stroke at the center of the shape outline (default for paths, bezier, and AddLine functions)
pattern StrokeCenter :: ImDrawFlags
pattern StrokeCenter = #{const ImDrawFlags_StrokeCenter}

-- | OK   --     // Draw stroke at the center of the shape outline, so that half thickness rounded down will be outside, and the rest inside the shape outline. Useful for axis-aligned shapes: AddLineH, AddLineV, AddRect. Does not animate well!
pattern StrokeCenterBiased :: ImDrawFlags
pattern StrokeCenterBiased = #{const ImDrawFlags_StrokeCenterBiased}

-- | OK   --     // Draw stroke outside of the shape outline
pattern StrokeOutside :: ImDrawFlags
pattern StrokeOutside = #{const ImDrawFlags_StrokeOutside}

-- | OK   OK(0)  // Use legacy positioning + enable JoinMiter + disable AALineEnds. Must be all bits set.
pattern StrokeLegacy :: ImDrawFlags
pattern StrokeLegacy = #{const ImDrawFlags_StrokeLegacy}

-- | Other Options ------------------------------ // Prim/Scope?
-- OK   OK(0)  // Disable automatically snapping AddText() calls to pixel boundaries.
pattern TextNoPixelSnap :: ImDrawFlags
pattern TextNoPixelSnap = #{const ImDrawFlags_TextNoPixelSnap}

-- | --   OK(1)  // Enable using textures instead of strokes to draw rounded corners/circles where possible (faster). Used by default unless 'ImFontAtlasFlags_NoBakedRoundCorners' is enabled in the font atlas.
pattern UseTexForRoundCorners :: ImDrawFlags
pattern UseTexForRoundCorners = #{const ImDrawFlags_UseTexForRoundCorners}

-- | --   OK(1)  // Can emit 'VtxOffset > 0' to allow large meshes with 16-bit ImDrawIdx. Used by default when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled by the backend.
pattern UseVtxOffset :: ImDrawFlags
pattern UseVtxOffset = #{const ImDrawFlags_UseVtxOffset}

-- | --   OK(1)  // [Internal]
pattern AllowTexForRoundCorners_ :: ImDrawFlags
pattern AllowTexForRoundCorners_ = #{const ImDrawFlags_AllowTexForRoundCorners_}

-- | [Internal]
-- [Internal]
pattern RoundMask_ :: ImDrawFlags
pattern RoundMask_ = #{const ImDrawFlags_RoundMask_}

-- | [Internal] Values allowed in PushDrawFlag() scope.
pattern AllowInPushScope_ :: ImDrawFlags
pattern AllowInPushScope_ = #{const ImDrawFlags_AllowInPushScope_}

pattern AllowInFrameScope_ :: ImDrawFlags
pattern AllowInFrameScope_ = #{const ImDrawFlags_AllowInFrameScope_}

-- | [Internal]
pattern StrokeMask_ :: ImDrawFlags
pattern StrokeMask_ = #{const ImDrawFlags_StrokeMask_}

-- | [Internal] == 0x8000000F. Reserved to detect misuses.
pattern InvalidMask_ :: ImDrawFlags
pattern InvalidMask_ = #{const ImDrawFlags_InvalidMask_}