// Copyright 2015-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Various special / math symbols, matching LaTeX names.
// The pass:[+ ] notation avoids asciidoctor EOL treatment of the attribute.

// Macro just to avoid typing the messy expression many times.
// \' doesn't work in title, captions, link text, etc.
:YCbCr: pass:q[Y′C~B~C~R~]
:RGBprime: pass:q[R′G′B′]
:prime: ′

// Used when an italicized 'i' is wanted in the middle of an enum name,
// such as `VK_IMAGE_ASPECT_PLANE__{ibit}__BIT`
:ibit: _i_

// Special symbols - not used in [eq] spans
:sym1: ✓
:sym2: †
:sym3: ‡
:reg: ®
:trade: ™
:harr: ↔

// Math operators and logic symbols
:times: ×
:cdot: ⋅
:plus: pass:[+ ]
:geq: ≥
:leq: ≤
:neq: ≠
:leftarrow: ←
:uparrow: ↑
:rightarrow: →
:downarrow: ↓
:elem: ∈
:lnot: ¬
:land: ∧
:lor: ∨
:oplus: ⊕
:lceil: ⌈
:rceil: ⌉
:lfloor: ⌊
:rfloor: ⌋
:vert: |
:partial: ∂
:onehalf: ½
:onequarter: ¼
:ldots: …
:forall: ∀
:sqrt: √
:inf: ∞
:plusmn: ±

// Greek letters
:alpha: α
:beta: β
:gamma: γ
:DeltaUpper: Δ
:delta: δ
:epsilon: ε
:eta: η
:theta: θ
:lambda: λ
:pi: π
:rho: ρ
:sigma: σ
:tau: τ
:phi: ϕ

// Word break opportunity tag for HTML
ifdef::backend-html5[]
:wbro: pass:[<wbr>]
endif::backend-html5[]
ifndef::backend-html5[]
:wbro:
endif::backend-html5[]

// header names
:core_header: vulkan_core.h
:full_header: vulkan.h

// Placeholders for host synchronization block text
:externsynctitle: Host Synchronization
:externsyncprefix: Host access to

// SPIR-V terms
// macros are not case-sensitive but are defined as such for readability
:ExecutionModel: code:Execution code:Model
:ExecutionMode: code:Execution code:Mode
:StorageClass: code:Storage code:Class

// Human-readable names for XML 'specialuse' attributes, used in
// chapters/extensions.txt for the <<extendingvulkan-specialuse-table>> table
// as well as in some extension appendices.
:cadsupport: CAD support
:d3demulation: D3D support
:devtools: Developer tools
:debugging: Debugging tools
:glemulation: OpenGL / ES support


// URL prefix for the github repository containing the public specification,
// used to generate links to separate extension proposal documents in
// generated extension metadata.
:specRepositoryURL: https://github.com/KhronosGroup/Vulkan-Docs/tree/main
