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_}