# external references that will be documented eventually ... #External DirectWrite TrueType Windows Linux Android iOS __ANDROID_API__ AHardwareBuffer FreeType FreeType-based Harfbuzz LCD RGB sRGB BGR RGBA ARGB YUV YUVA HSV SDTV HDTV Unicode Unicode5 UTF-8 UTF-16 UTF-32 ASCII Unichar API BMP GIF HEIF ICO JPEG PNG WBMP WebP CPU GPU GPU-backed OpenGL Vulkan VkDevice I/O MSAA PDF XPS RFC NaN NaNs bool U16CPU int int8_t int16_t int32_t int64_t uint8_t uint16_t uint32_t uint64_t size_t nullptr malloc() calloc() assert() std::move() C C++ SIZE_MAX C_FILE FILE CSS HTML affine destructor multitexturing representable subclasses descender descenders grayscale kerning unhinted no-parameter Sa Da Sc Dc 0xAARRGGBB # temporary until figure out what to do SkUserConfig.h # not external, but still thinking about how markup refers to this SkXXX.h # ditto SkXXX_Reference # ditto Skia # ditto SK_ABORT # ditto SK_DEBUG # ditto SK_RELEASE # ditto SK_USE_FREETYPE_EMBOLDEN # ditto SK_BUILD_FOR_ANDROID_FRAMEWORK # ditto SK_BUILD_FOR_MAC # ditto SK_BUILD_FOR_IOS # ditto SK_SUPPORT_GPU # ditto SK_HAS_JPEG_LIBRARY # ditto SK_HAS_PNG_LIBRARY # ditto SK_HAS_WEBP_LIBRARY # ditto SK_IGNORE_GPU_DITHER # ditto SK_PMCOLOR_BYTE_ORDER # 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 ## # this jargon requires a substitute to space the phrase. #Topic Little_Endian #Substitute little endian ## #Topic Big_Endian #Substitute big endian ## #Topic YUV_Component_Y #Substitute YUV component y ## #Topic YUV_Component_U #Substitute YUV component u ## #Topic YUV_Component_V #Substitute YUV component v ## #Topic UV_Mapping #Substitute UV mapping ## #Topic Multi_Sample_Anti_Aliasing #Substitute multi-sample anti-aliasing ## #Topic GPU_Share_Group #Substitute GPU share group ## #Topic Bezier_Curve #Substitute Bezier cruve ## #Topic Coons_Patch #Substitute Coons patch ## #Topic Cartesian_Coordinate #Substitute Cartesian coordinate ## #Topic Euclidean_Distance #Substitute Euclidean distance ## #Topic Euclidean_Space #Substitute Euclidean space ## #Topic HTML_Gray #Substitute HTML gray ## #Topic HTML_Silver #Substitute HTML silver ## #Topic HTML_Lime #Substitute HTML lime ## #Topic HTML_Green #Substitute HTML green ## #Topic HTML_Aqua #Substitute HTML aqua ## #Topic HTML_Fuchsia #Substitute HTML fuchsia ## #Topic SVG_lightgray #Substitute SVG light gray ## #Topic SVG_darkgray #Substitute SVG dark gray ## # start of topics to be documented in the future #Topic Alias #Alias Aliased ## #Alias Aliasing ## ## #Topic Arc #Alias Arcs ## #Topic ## #Topic Backend_Semaphore #Alias Backend_Semaphores ## #Class GrBackendSemaphore ## ## #Topic BBH_Factory #Class SkBBHFactory ## ## #Topic Circle #Alias Circles ## #Topic ## #Topic Clip_Op #EnumClass SkClipOp #Const kDifference 0 ## #Const kIntersect 1 ## ## ## #Topic Color_Filter #Class SkColorFilter #Class ## ## #Topic Color_Space #Class SkColorSpace #Method static sk_sp<SkColorSpace> MakeSRGBLinear() ## #Method bool gammaCloseToSRGB() const ## #Method static bool Equals(const SkColorSpace* src, const SkColorSpace* dst) ## ## ## #Topic Create_Color_Space_Xform_Canvas #Method std::unique_ptr<SkCanvas> 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 Debug_Canvas #Class SkDebugCanvas ## ## #Topic Debugging #Method void SkDebugf(const char format[], ...) ## ## #Topic Deferred_Display_List #Class SkDeferredDisplayList ## #Subtopic Recorder #Class SkDeferredDisplayListRecorder ## ## ## #Topic Deserial_Procs #Struct SkDeserialProcs #Member SkDeserialPictureProc fPictureProc ## #Member void* fPictureCtx ## #Member SkDeserialTypefaceProc fTypefaceProc ## #Member void* fTypefaceCtx ## ## ## #Topic Device #Class SkBaseDevice ## ## #Topic Document #Class SkDocument #Method SkCanvas* beginPage(SkScalar width, SkScalar height, const SkRect* content = NULL) ## ## #Subtopic PDF ## ## #Topic Draw_Layer ## #Topic Draw_Looper #Class SkDrawLooper #Class ## ## #Topic Drawable #Class SkDrawable #Method void draw(SkCanvas*, const SkMatrix* = NULL) ## ## ## # to be in 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 ## ## # end of topic Encoded_Image_Format #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 Text_Encoding #Enum SkTextEncoding #Const kUTF8_SkTextEncoding 0 ## #Const kUTF16_SkTextEncoding 1 ## #Const kUTF32_SkTextEncoding 2 ## #Const kGlyphID_SkTextEncoding 3 ## TextEncoding determines whether text specifies character codes and their encoded size, or glyph indices. Characters are encoded as specified by the #A Unicode standard # https://unicode.org/standard/standard.html ## . Character codes encoded size are specified by UTF-8, UTF-16, or UTF-32. All character code formats are able to represent all of Unicode, differing only in the total storage required. #A UTF-8 (RFC 3629) # https://tools.ietf.org/html/rfc3629 ## encodes each character as one or more 8-bit bytes. #A UTF-16 (RFC 2781) # https://tools.ietf.org/html/rfc2781 ## encodes each character as one or two 16-bit words. #A UTF-32 # https://www.unicode.org/versions/Unicode5.0.0/ch03.pdf ## encodes each character as one 32-bit word. Font_Manager uses font data to convert character code points into glyph indices. A glyph index is a 16-bit word. #Enum SkTextEncoding ## #Topic Text_Encoding ## #Topic Font_Hinting #Line # glyph outline adjustment ## #EnumClass SkFontHinting #Const kNone 0 #Line # glyph outlines unchanged ## Leaves glyph outlines unchanged from their native representation. With FreeType, this is equivalent to the FT_LOAD_NO_HINTING bit-field constant supplied to FT_Load_Glyph, which indicates that the vector outline being loaded should not be fitted to the pixel grid but simply scaled to 26.6 fractional pixels. ## #Const kSlight 1 #Line # minimal modification to improve contrast ## Modifies glyph outlines minimally to improve contrast. With FreeType, this is equivalent in spirit to the FT_LOAD_TARGET_LIGHT value supplied to FT_Load_Glyph. It chooses a lighter hinting algorithm for non-monochrome modes. Generated Glyphs may be fuzzy but better resemble their original shape. ## #Const kNormal 2 #Line # glyph outlines modified to improve contrast ## Modifies glyph outlines to improve contrast. This is the default. With FreeType, this supplies FT_LOAD_TARGET_NORMAL to FT_Load_Glyph, choosing the default hinting algorithm, which is optimized for standard gray-level rendering. ## #Const kFull 3 #Line # modifies glyph outlines for maximum contrast ## Modifies glyph outlines for maximum contrast. With FreeType, this selects FT_LOAD_TARGET_LCD or FT_LOAD_TARGET_LCD_V if kLCDRenderText_Flag is set. FT_LOAD_TARGET_LCD is a variant of FT_LOAD_TARGET_NORMAL optimized for horizontally decimated LCD displays; FT_LOAD_TARGET_LCD_V is a variant of FT_LOAD_TARGET_NORMAL optimized for vertically decimated LCD displays. ## #EnumClass SkFontHinting ## #Topic Font_Hinting ## #Topic Font_Metrics #Struct SkFontMetrics #Line # values computed by Font_Manager using Typeface ## SkFontMetrics is filled out by SkPaint::getFontMetrics. SkFontMetrics contents reflect the values computed by Font_Manager using Typeface. Values are set to zero if they are not available. All vertical values are relative to the baseline, on a y-axis pointing down. Zero is on the baseline, negative values are above the baseline, and positive values are below the baseline. fUnderlineThickness and fUnderlinePosition have a bit set in fFlags if their values are valid, since their value may be zero. fStrikeoutThickness and fStrikeoutPosition have a bit set in fFlags if their values are valid, since their value may be zero. #Enum FontMetricsFlags #Line # valid Font_Metrics ## FontMetricsFlags are set in fFlags when underline and strikeout metrics are valid; the underline or strikeout metric may be valid and zero. Fonts with embedded bitmaps may not have valid underline or strikeout metrics. #Const kUnderlineThicknessIsValid_Flag 0x0001 #Line # set if fUnderlineThickness is valid ## ## #Const kUnderlinePositionIsValid_Flag 0x0002 #Line # set if fUnderlinePosition is valid ## ## #Const kStrikeoutThicknessIsValid_Flag 0x0004 #Line # set if fStrikeoutThickness is valid ## ## #Const kStrikeoutPositionIsValid_Flag 0x0008 #Line # set if fStrikeoutPosition is valid ## ## #Enum ## #Member uint32_t fFlags #Line # is set to FontMetricsFlags when metrics are valid ## ## #Member SkScalar fTop #Line # extent above baseline ## Greatest extent above the baseline for any glyph. Typically less than zero. ## #Member SkScalar fAscent #Line # distance to reserve above baseline ## Recommended distance above the baseline to reserve for a line of text. Typically less than zero. ## #Member SkScalar fDescent #Line # distance to reserve below baseline ## Recommended distance below the baseline to reserve for a line of text. Typically greater than zero. ## #Member SkScalar fBottom #Line # extent below baseline ## Greatest extent below the baseline for any glyph. Typically greater than zero. ## #Member SkScalar fLeading #Line # distance to add between lines ## Recommended distance to add between lines of text. Typically greater than or equal to zero. ## #Member SkScalar fAvgCharWidth #Line # average character width ## Average character width, if it is available. Zero if no average width is stored in the font. ## #Member SkScalar fMaxCharWidth #Line # maximum character width ## ## #Member SkScalar fXMin #Line # minimum x ## Minimum bounding box x-axis value for all Glyphs. Typically less than zero. ## #Member SkScalar fXMax #Line # maximum x ## Maximum bounding box x-axis value for all Glyphs. Typically greater than zero. ## #Member SkScalar fXHeight #Line # height of lower-case 'x' ## May be zero if no lower-case height is stored in the font. ## #Member SkScalar fCapHeight #Line # height of an upper-case letter ## May be zero if no upper-case height is stored in the font. ## #Member SkScalar fUnderlineThickness #Line # underline thickness ## If the metric is valid, the kUnderlineThicknessIsValid_Flag is set in fFlags. If kUnderlineThicknessIsValid_Flag is clear, fUnderlineThickness is zero. ## #Member SkScalar fUnderlinePosition #Line # underline position relative to baseline ## Position of the top of the underline stroke relative to the baseline. Typically positive when valid. If the metric is valid, the kUnderlinePositionIsValid_Flag is set in fFlags. If kUnderlinePositionIsValid_Flag is clear, fUnderlinePosition is zero. ## #Member SkScalar fStrikeoutThickness #Line # strikeout thickness ## If the metric is valid, the kStrikeoutThicknessIsValid_Flag is set in fFlags. If kStrikeoutThicknessIsValid_Flag is clear, fStrikeoutThickness is zero. ## #Member SkScalar fStrikeoutPosition #Line # strikeout position relative to baseline ## Position of the bottom of the strikeout stroke relative to the baseline. Typically negative when valid. If the metric is valid, the kStrikeoutPositionIsValid_Flag is set in fFlags. If kStrikeoutPositionIsValid_Flag is clear, fStrikeoutPosition is zero. ## #Method bool hasUnderlineThickness(SkScalar* thickness) const #Line # returns underline thickness if set ## #NoExample ## ## #Method bool hasUnderlinePosition(SkScalar* position) const #Line # returns underline position if set ## #NoExample ## ## #Method bool hasStrikeoutThickness(SkScalar* thickness) const #Line # returns strikeout thickness if set ## #NoExample ## ## #Method bool hasStrikeoutPosition(SkScalar* position) const #Line # returns strikeout position if set ## #NoExample ## ## #Struct ## #Topic ## #Topic Font_Manager #Topic ## #Topic Glyph #Subtopic ID ## #Alias Glyphs ## ## #Topic GPU_Context #Substitute GPU context #Class GrContext #Method void abandonContext() ## #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 #Class SkImageFilter #Class ## #Topic ## #Class SkImageGenerator ## #Topic Image_Scaling ## #Topic ISize #Struct SkISize #Method int32_t width() const ## #Method int32_t height() const ## ## ## #Topic Left_Side_Bearing ## #Topic Line #Alias Lines ## #Topic ## # to be in 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) ## ## # end of Topic Malloc_Pixel_Ref #Struct SkMask ## #Topic Mask_Alpha #Topic ## #Topic Mask_Filter #Class SkMaskFilter #Class ## #Topic ## # to be in Topic Math #Method Luminosity(dstColor) # this permits using Luminosity() in documentation ## #Method Saturation(dstColor) # this permits using Saturation() in documentation ## #Method SetLuminosity(srcSaturation, dstLuminosity) # this permits using SetLuminosity() in documentation ## #Method SetSaturation(srcSaturation, dstSaturation) # this permits using SetSaturation() in documentation ## #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) ## #Method float abs(float x) # this permits using abs(x) in documentation ## #Method float max(float x) # this permits using max(x) in documentation ## #Method float min(float x) # this permits using max(x) in documentation ## #Method float sizeof(float x) # this permits using sizeof(x) in documentation ## #Method float sqrt(float x) # this permits using sqrt(x) in documentation ## #Method static inline bool sk_64_isS32(int64_t value) ## # end of Topic Math #Topic Mip_Map #Substitute mip map ## #Topic Nine_Patch ## # to be in Topic Number_Types ? #Typedef uint16_t SkGlyphID #Typedef ## #Topic Scalar #Alias Scalars ## #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_ScalarNearlyZero to be written ## #Const SK_MinS32 to be written ## #Const SK_MaxS32 to be written ## #Typedef int32_t SkUnichar #Typedef ## #Typedef unsigned U8CPU #Typedef ## # end of Topic Number_Types #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 #Class ## #Topic ## # to be in Topic Path_Measure #Class SkPathMeasure #Method void dump() const ## ## # end of Topic Path_Measure #Topic PathOps #Enum SkPathOp ## #Method bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result) ## #Topic ## #Topic Picture_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 Point3 #Struct SkPoint3 ## #Topic ## #Topic PostScript #Substitute PostScript #Subtopic Arct #Substitute PostScript arct ## ## #Topic Premultiply #Alias Premultiplied ## #Alias Premultiplies ## ## #Topic Raster_Engine ## #Topic Raster_Handle_Allocator #Class SkRasterHandleAllocator #Typedef void* Handle ## #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 ## # to be in Topic Rasterizer #Class SkRasterizer #Class ## # end of Topic Rasterizer #Topic Reference_Count #Class SkRefCnt #Class ## #Template SkNVRefCnt ## ## #Topic Smart_Pointer #Class sk_sp #Class ## #Topic ## #Topic Render_Target #Class GrRenderTarget ## ## #Topic Right_Side_Bearing ## #Topic RSXform #Struct SkRSXform #Member SkScalar fSCos ## #Member SkScalar fSSin ## #Member SkScalar fTx ## #Member SkScalar fTy ## ## ## #Topic Serial_Procs #Struct SkSerialProcs #Member SkSerialPictureProc fPictureProc ## #Member void* fPictureCtx ## #Member SkSerialTypefaceProc fTypefaceProc ## #Member void* fTypefaceCtx ## ## ## #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) ## #Method static sk_sp<SkShader> MakeCompose(sk_sp<SkShader> dst, sk_sp<SkShader> src, SkBlendMode mode, float lerp = 1) ## #Class ## #Topic ## #Topic Size #Struct SkSize #Method int32_t width() const ## #Method int32_t height() const ## ## ## #Topic Sprite #Alias Sprites ## #Topic ## #Topic Stream_Asset #Class SkStreamAsset ## #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 ## #Subtopic Sweep_Flag #Substitute SVG sweep-flag ## ## #Topic Text #Topic ## #Topic Texture #Class GrBackendTexture #Method bool isValid() const ## ## ## #Topic YUV_Planes #Class SkYUVAIndex ## ## #Topic RenderTarget #Class GrBackendRenderTarget #Method bool isValid() const ## ## ## #Topic Transfer_Mode ## #Topic Typeface #Subtopic ID #Typedef uint32_t SkFontID ## ## #Class SkTypeface #Method SkFontID uniqueID() const ## #Class ## #Topic ## # to be defined in types #Typedef intptr_t GrBackendObject #Typedef ## #EnumClass GrMipMapped #Const kNo 0 ## #Const kYes 1 ## #EnumClass ## #Enum GrSurfaceOrigin #Const kBottomLeft_GrSurfaceOrigin 0 ## #Const kTopLeft_GrSurfaceOrigin 1 ## #Enum ## #EnumClass SkBudgeted #Const kNo 0 ## #Const kYes 1 ## #EnumClass ## #EnumClass GrSemaphoresSubmitted #Const kNo 0 ## #Const kYes 1 ## #EnumClass ## # end of defined in types #Topic Unpremultiply #Alias Unpremultiplied ## ## #Topic Vertices #Class SkVertices #Class Bone ## ## #Subtopic Colors ## #Subtopic Texs ## #Topic ## #Topic Xfermode_Image_Filter #Class SkXfermodeImageFilter ## ##