# external references that will be documented eventually ...
#External
 DirectWrite TrueType Windows Linux Android iOS __ANDROID_API__ AHardwareBuffer
 FreeType FreeType-based Harfbuzz   
 Descenders Kerning Unhinted 
 LCD RGB sRGB YUV
 YUV_Component_Y YUV_Component_U YUV_Component_V
 Unicode Unicode5 UTF-8 UTF-16 UTF-32 ASCII Unichar
 API
 BMP GIF HEIF ICO JPEG PNG WBMP WebP
 CPU Little_Endian Big_Endian
 GPU GPU-backed OpenGL Vulkan I/O MSAA UV_Mapping Multi_Sample_Anti_Aliasing GPU_Share_Group
 PDF XPS
 RFC
 NaN NaNs
 Bezier_Curve Coons_Patch Cartesian_Coordinate Euclidean_Distance Euclidean_Space Mip_Map
 C C++ Destructor Subclasses
 SkUserConfig  # not external, but still thinking about how markup refers to this
 SkXXX.h        # ditto
 SkXXX_Reference # ditto
 Skia           # ditto
 SK_ABORT       # ditto
 SK_API         # ditto
 SK_DEBUG       # ditto
 SK_RELEASE     # ditto
 SK_USE_FREETYPE_EMBOLDEN # ditto
 SK_SUPPORT_LEGACY_PAINT_TEXTDECORATION # ditto
 SK_BUILD_FOR_ANDROID_FRAMEWORK # ditto
 SK_BUILD_FOR_MAC # ditto
 SK_BUILD_FOR_IOS # ditto
 SK_IGNORE_TO_STRING #  ditto
 SK_SUPPORT_GPU # ditto
 SK_HAS_JPEG_LIBRARY # ditto
 SK_HAS_PNG_LIBRARY # ditto
 SK_HAS_WEBP_LIBRARY # ditto

# FreeType related
FT_LOAD_TARGET_LIGHT
FT_LOAD_TARGET_NORMAL
FT_LOAD_TARGET_LCD
FT_LOAD_TARGET_LCD_V
FT_LOAD_NO_HINTING
FT_Load_Glyph

#External ##

#Topic Alias
#Alias Aliased
#Alias Aliasing
##

#Topic Anti-alias
#Alias Anti-aliased
#Alias Anti-aliasing
##

#Topic Arc
#Alias Arcs
#Topic ##

#Topic Backend_Semaphore
#Alias Backend_Semaphores
#Class GrBackendSemaphore
##
##

#Topic BBH_Factory
#Class SkBBHFactory
##
##

#Topic Blend_Mode
#EnumClass SkBlendMode
    #Const kSrc 1
    ##
    #Const kSrcOver 3
    ##
    #Const kPlus 12
    ##
#EnumClass ##
#Topic ##

#Topic Circle
#Alias Circles
#Topic ##

#Topic Clip_Op
#EnumClass SkClipOp
    #Const kDifference 0
    ##
    #Const kIntersect 1
    ##
##
##

#Topic Color
    #Typedef uint32_t SkColor
    #Typedef ##

    #Typedef uint32_t SkPMColor
    #Typedef ##

    # fixme: defines, not methods, need new markup type
    #Method int SkColorGetA(color)
    ##
    #Method int SkColorGetR(color)
    ##
    #Method int SkColorGetG(color)
    ##
    #Method int SkColorGetB(color)
    ##
    #Method int SkColorSetARGB(a, r, g, b)
    ##
    #Method SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
    ##

    #Const SK_ColorBLACK 0xFF000000 
    ##
    #Const SK_ColorBLUE 0xFF0000FF 
    ##
    #Const SK_ColorGREEN 0xFF00FF00 
    ##
    #Const SK_ColorRED 0xFFFF0000 
    ##
    #Const SK_ColorWHITE 0xFFFFFFFF 
    ##
    #Subtopic Alpha
        #Alias Alpha
    #Subtopic ##
    #Subtopic RGB
    #Substitute RGB
        #Subtopic Red
            #Alias Red
        #Subtopic ##
        #Subtopic Blue
            #Alias Blue
        #Subtopic ##
        #Subtopic Green
            #Alias Green
        #Subtopic ##
    #Subtopic ##
    #Subtopic ARGB
    #Substitute ARGB
    #Subtopic ##

    #Subtopic RBG
    #Substitute RBG
    #Subtopic ##

    #Subtopic RGB-565
    #Substitute RGB-565
    #Alias Color_RGB-565 # quit changing - to _ !
    #Subtopic ##

    #Subtopic Gray
    ##
#Topic ##

#Topic Color_Filter
#Class SkColorFilter
#Method void toString(SkString* str) const 
##
#Class ##
#Topic ##

#Topic Color_Space
#Class SkColorSpace
    #Method static sk_sp<SkColorSpace> MakeSRGBLinear()
    ##
##
#EnumClass SkTransferFunctionBehavior
#Const kRespect 0
##
#Const kIgnore 1
##
#EnumClass ##
##

#Topic Create_Color_Space_Xform_Canvas
#Method std::unique_ptr<SkCanvas> SK_API SkCreateColorSpaceXformCanvas(SkCanvas* target,
                                                                       sk_sp<SkColorSpace> targetCS)
##
##

#Topic Core_Graphics
#Substitute Core Graphics
##

#Topic Core_Text
#Substitute Core Text
##

#Topic Curve
#Alias Curves
##

#Topic Data
#Class SkData
##
##

#Topic Debugging
#Method SK_API void SkDebugf(const char format[], ...)
##
##

#Topic Deferred_Display_List
#Class SkDeferredDisplayList
##
#Subtopic Recorder
#Class SkDeferredDisplayListRecorder
##
##
##

#Topic Device
#Class SkBaseDevice
##
#Topic ##

#Topic Document
#Class SkDocument
    #Method SkCanvas* beginPage(SkScalar width, SkScalar height,
                        const SkRect* content = NULL)
    ##
##
#Subtopic PDF
##
##

#Topic Draw_Filter
#Class SkDrawFilter
##
##

#Topic Draw_Layer
##

#Topic Draw_Looper
#Class SkDrawLooper
#Class ##
#Topic ##

#Topic Drawable
#Class SkDrawable
    #Method void draw(SkCanvas*, const SkMatrix* = NULL)
    ##
##
##

#Topic Dump_Canvas
#Class SkDumpCanvas
##
#Topic ##

#Topic Encoded_Image_Format
#EnumClass SkEncodedImageFormat
    #Const kUnknown 0
    ##
    #Const kBMP 1
    ##
    #Const kGIF 2
    ##
    #Const kICO 3
    ##
    #Const kJPEG 4
    ##
    #Const kPNG 5
    ##
    #Const kWBMP 6
    ##
    #Const kWEBP 7
    ##
    #Const kPKM 8
    ##
    #Const kKTX 9
    ##
    #Const kASTC 10
    ##
    #Const kDNG 11
    ##
    #Const kHEIF 12
    ##
##
#Topic ##

#Topic Filter_Quality
#Enum SkFilterQuality
    #Const kNone_SkFilterQuality 0
    ##
    #Const kLow_SkFilterQuality 1
    ##
    #Const kMedium_SkFilterQuality 2
    ##
    #Const kHigh_SkFilterQuality 3
    ##
#Enum ##
#Subtopic Nearest_Neighbor
#Substitute nearest neighbor filter
##
#Subtopic Bilerp
#Substitute bilerp filter
##
#Subtopic MipMap
#Substitute mip-map filter
##
#Subtopic BiCubic
#Substitute bicubic filter
##
#Topic ##

#Topic Font
#Subtopic Advance
#Subtopic ##
#Subtopic Engine
##
#Topic ##

#Topic Font_Manager
#Topic ##

#Topic Glyph
#Alias Glyphs
##

#Topic GPU_Context
#Substitute GPU context
#Subtopic Resource_Cache_Limits
#Alias Resource_Cache_Limits
##
#Class GrContext
#Method void flush()
##
##
##

#Topic GPU_Surface
#Substitute GPU surface
##

#Topic GPU_Texture
#Substitute GPU texture
##

#Topic HTML_Canvas
    #Substitute HTML Canvas
    #Subtopic ArcTo
        #Substitute HTML Canvas arcTo
    ##
##

#Topic Image_Filter
#Subtopic Scaling
#Subtopic ##
#Class SkImageFilter
#Method void toString(SkString* str) const 
##
#Class ##
#Topic ##

#Topic Image_Scaling
##

#Topic ISize
#Struct SkISize
##
##

#Topic Left_Side_Bearing 
##

#Topic Line
#Alias Lines
#Topic ##

#Topic Malloc_Pixel_Ref
#Class SkMallocPixelRef
    #Method static sk_sp<SkPixelRef> MakeZeroed(const SkImageInfo&, size_t rowBytes)
    ##
    #Method static sk_sp<SkPixelRef> MakeAllocate(const SkImageInfo&, size_t rowBytes)
    ##
##
##

#Topic Mask_Alpha
#Topic ##

#Topic Mask_Filter
#Class SkMaskFilter
#Method void toString(SkString* str) const 
##
#Class ##
#Topic ##

#Topic Math
    #Method static inline bool sk_64_isS32(int64_t value)
    ##
    #Method SkIntToScalar(x)
    ##
    #Method SkScalarRoundToInt(x)
    ##
    #Method SkScalarFloorToInt(x)
    ##
    #Method SkScalarCeilToInt(x)
    ##
    #Method SkScalarFloorToScalar(x)
    ##
    #Method SkScalarCeilToScalar(x)
    ##
    #Method SkScalarIsFinite(x)
    ##
    #Method SkScalarIsNaN(x)
    ##
    #Method template <typename D, typename S> inline bool SkTFitsIn(S s)
    ##
##

#Topic Meta_Data
#Class SkMetaData
##
##

#Topic Mip_Map
##

#Topic Nine_Patch
##

#Topic Number_Types
    #Typedef uint16_t SkGlyphID
    #Typedef ##
    #Subtopic Scalar
    #Alias Scalar
    #Typedef float SkScalar
    #Typedef ##
    ##
    #Const SK_MinS32FitsInFloat
    to be written
    ##
    #Const SK_MaxS32FitsInFloat
    to be written
    ##
    #Const SK_ScalarMin
    to be written
    ##
    #Const SK_ScalarMax
    to be written
    ##
    #Const SK_ScalarInfinity
    to be written
    ##
    #Const SK_ScalarNegativeInfinity
    to be written
    ##
    #Const SK_ScalarNaN
    to be written
    ##
    #Const SK_MinS32
    to be written
    ##
    #Const SK_MaxS32
    to be written
    ##
    #Const SK_MaxSizeT
    to be written
    ##
    #Typedef int32_t SkUnichar
    #Typedef ##
    #Typedef unsigned U8CPU
    #Typedef ##
#Topic ##

#Topic OS_X
#Substitute OS X
##

#Topic Oval
#Alias Ovals
#Topic ##

#Topic Paint_Defaults
#Const SkPaintDefaults_Flags 0
##
#Const SkPaintDefaults_Hinting 2
##
#Const SkPaintDefaults_TextSize 12
##
#Const SkPaintDefaults_MiterLimit 4
##
#Topic ##

#Topic Patch
#Alias Patches
#Topic ##

#Topic Path_Effect
    #Class SkPathEffect
    #Method void toString(SkString* str) const
    ##
    #Class ##
#Topic ##

#Topic Path_Measure
    #Class SkPathMeasure
            #Method void dump() const
            ##
    ##
##

#Topic PathOps
    #Method bool SK_API Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result)
    ##
#Topic ##

#Topic Picture
#Class SkPicture
#Method virtual void playback(SkCanvas*, AbortCallback* = nullptr) const = 0
##
##
#Subtopic Recorder
    #Class SkPictureRecorder
        #Method SkCanvas* beginRecording(const SkRect& bounds,
                             SkBBHFactory* bbhFactory = NULL,
                             uint32_t recordFlags = 0)
        ##
    ##
##
##

#Topic Pixel
#Subtopic Storage
##
##

#Topic Pixel_Ref
#Class SkPixelRef
    #Method int width() const
    ##
    #Method int height() const
    ##
    #Method bool isImmutable() const
    ##
    #Method void setImmutable()
    ##
##
##

#Enum SkPixelGeometry
##

# Topic Point_Array
# Substitute SkPoint arrays
# Topic ##

#Topic Point3
#Struct SkPoint3
##
#Topic ##

#Topic PostScript
#Substitute PostScript
#Subtopic Arct
#Substitute PostScript arct
##
##

#Topic Premultiply
#Alias Premultiplied
##

#Topic Raster_Engine
##

#Topic Raster_Handle_Allocator
#Class SkRasterHandleAllocator
    #Struct Rec
    ##
    #Method static std::unique_ptr<SkCanvas> MakeCanvas(std::unique_ptr<SkRasterHandleAllocator>, const SkImageInfo&, const Rec* rec = nullptr)
    ##
##
##

#Topic Raster_Bitmap
##

#Topic Raster_Surface
##

#Topic Rasterizer
#Class SkRasterizer
#Class ##
#Subtopic Layer
#Subtopic ##
#Topic ##

#Topic Reference_Count
#Substitute SkRefCnt
#Class SkRefCnt
#Class ##
#Class sk_sp
#Class ##
#Topic ##

#Topic Region
#Class SkRegion
##
#Topic ##

#Topic Render_Target
#Class GrRenderTarget
##
##

#Topic Right_Side_Bearing
##

#Topic Round_Rect
    #Class SkRRect
        #Method void dump() const
        ##
        #Method void dumpHex() const
        ##
    ##
#Topic ##

#Topic RSXform
#Struct SkRSXform
##
##

#Topic Shader
#Class SkShader
    #Enum TileMode
        #Const kClamp_TileMode 0
        ##
        #Const kRepeat_TileMode 1
        ##
        #Const kMirror_TileMode 2
        ##
    ##
    #Method static sk_sp<SkShader> MakeBitmapShader(const SkBitmap& src, TileMode tmx, TileMode tmy,
                                            const SkMatrix* localMatrix = nullptr)
    ##
#Class ##
#Subtopic Gradient
#Subtopic ##
#Topic ##

#Topic Size
#Struct SkSize
##
##

#Topic Sprite
#Alias Sprites
#Topic ##

#Topic Stream
#Class SkStream
#Class ##
#Topic ##

#Topic String
#Class SkString
#Class ##
#Topic ##

#Topic Supersampling
##

#Topic Surface_Characterization
#Class SkSurfaceCharacterization
##
##

#Topic Surface_Properties
    #Class SkSurfaceProps
        #Subtopic Legacy_Font_Host
        #Enum InitType
            #Const kLegacyFontHost_InitType 0
            ##
        ##
        #Topic ##
    ##
##

#Topic SVG
#Subtopic Canvas
##
#Subtopic Arc
##
##

#Topic Text
#Topic ##

#Topic Text_Blob
#Class SkTextBlob
#Class ##
#Topic ##

#Topic Texture
#Class GrBackendTexture
##
##

#Topic Typeface
#Class SkTypeface
#Class ##
#Topic ##

#Topic Types
    #Typedef intptr_t GrBackendObject
    #Typedef ##

    #Enum GrSurfaceOrigin
    #Const kBottomLeft_GrSurfaceOrigin 0 
    ##
    #Const kTopLeft_GrSurfaceOrigin 1
    ##
    #Enum ##

    #Subtopic Budgeted
    #EnumClass SkBudgeted
    #Const kNo 0
    ##
    #Const kYes 1
    ##
    #EnumClass ##
    ##

    #EnumClass GrSemaphoresSubmitted
    #Const kNo 0
    ##
    #Const kYes 1
    ##
    #EnumClass ##
#Topic ##

#Topic Unpremultiply
#Alias Unpremultiplied
##

#Topic Vertices
#Subtopic Colors
##
#Subtopic Texs
##
#Topic ##

#Topic Read_Buffer
    #Struct SkReadBuffer
    #Struct ##
##

#Topic Write_Buffer
    #Struct SkWriteBuffer
    #Struct ##
#Topic ##