package pvf import "core:c" SCE_PVF_MAX_OPEN :: 18 SCE_PVF_FONTNAME_LENGTH :: 64 SCE_PVF_STYLENAME_LENGTH :: 64 SCE_PVF_FONTFILENAME_LENGTH :: 64 SCE_PVF_MIN_EMBOLDEN_RATE :: -20.0 SCE_PVF_MAX_EMBOLDEN_RATE :: 40.0 SCE_PVF_MIN_SKEW_VALUE :: -30.0 SCE_PVF_MAX_SKEW_VALUE :: 30.0 ScePvfErrorCode :: enum c.uint { NOMEMORY = 0x80460001, LIBID = 0x80460002, ARG = 0x80460003, NOFILE = 0x80460004, FILEOPEN = 0x80460005, FILECLOSE = 0x80460006, FILEREAD = 0x80460007, FILESEEK = 0x80460008, TOOMANYOPENED = 0x80460009, ILLEGALVERSION = 0x8046000A, DATAINCONSISTENT = 0x8046000B, EXPIRED = 0x8046000C, NOSUPPORT = 0x8046000E, NOGLYPH = 0x8046000F, UNKNOWN = 0x8046FFFF } ScePvfFamilyCode :: enum c.int { DEFAULT_FAMILY_CODE = 0, FAMILY_SANSERIF = 1, FAMILY_SERIF = 2, FAMILY_ROUNDED = 3 } ScePvfStyleCode :: enum c.int { DEFAULT_STYLE_CODE = 0, STYLE_REGULAR = 1, STYLE_OBLIQUE = 2, STYLE_NARROW = 3, STYLE_NARROW_OBLIQUE = 4, STYLE_BOLD = 5, STYLE_BOLD_OBLIQUE = 6, STYLE_BLACK = 7, STYLE_BLACK_OBLIQUE = 8, STYLE_L = 101, STYLE_M = 102, STYLE_DB = 103, STYLE_B = 104, STYLE_EB = 105, STYLE_UB = 106 } ScePvfImageByfferPixelFormatType :: enum c.int { USERIMAGE_DIRECT4_L = 0, USERIMAGE_DIRECT8 = 2 } ScePvfLanguageCode :: enum c.int { DEFAULT_LANGUAGE_CODE = 0, LANGUAGE_J = 1, LANGUAGE_LATIN = 2, LANGUAGE_K = 3, LANGUAGE_C = 4, LANGUAGE_CJK = 5 } ScePvfRegionCode :: enum c.int { GENERIC_REGION_CODE = 0, REGION_001 = 1, REGION_002 = 2, REGION_003 = 3, REGION_004 = 4, REGION_005 = 5, REGION_006 = 6, REGION_007 = 7 } ScePvfFontVendorCountryCode :: enum c.int { GENERIC_COUNTRY_CODE = 0, COUNTRY_JAPAN = 1, COUNTRY_USA = 2, COUNTRY_KOREA = 3 } ScePvfBoolValue :: enum c.int { FALSE = 0, TRUE = 1 } ScePvfSubstyle :: enum c.int { VERTICALLAYOUT = 0x0001, PSEUDO_BOLD = 0x0002, PSEUDO_SLANT = 0x0004 } ScePvfDataAccessMode :: enum c.int { FILEBASEDSTREAM = 0, MEMORYBASEDSTREAM = 1 } ScePvfU32 :: c.uint ScePvfS32 :: c.int ScePvfU16 :: c.ushort ScePvfU8 :: c.uchar ScePvfFloat32 :: c.float ScePvfBool :: ScePvfU32 ScePvfLibId :: rawptr ScePvfFontId :: rawptr ScePvfPointer :: rawptr ScePvfHandle :: rawptr ScePvfError :: ScePvfS32 ScePvfInt :: ScePvfS32 ScePvfCharCode :: ScePvfU16 ScePvfFontIndex :: ScePvfS32 ScePvfIrect :: struct { width: ScePvfU16, height: ScePvfU16, } #assert(size_of(ScePvfIrect) == 4) ScePvfRect :: struct { width: ScePvfU32, height: ScePvfU32, } #assert(size_of(ScePvfRect) == 8) ScePvfFontCacheLockFunc :: #type ^proc "c" (cacheInstance: ScePvfPointer) -> ScePvfS32 ScePvfFontChcheUnlockFunc :: #type ^proc "c" (cacheInstance: ScePvfPointer) -> ScePvfS32 ScePvfFontChcheFindFunc :: #type ^proc "c" ( chcheInstance: ScePvfPointer, hashValue: ScePvfU32, key: ScePvfPointer, result: ^ScePvfBool) -> ScePvfPointer ScePvfFontChcheWriteKeyValueToCacheFunc :: #type ^proc "c" ( cacheInstance: ScePvfPointer, chcheSlot: ScePvfPointer, key: ScePvfPointer) -> ScePvfS32 ScePvfFontChcheWriteToCacheFunc :: #type ^proc "c" ( cacheInstance: ScePvfPointer, cacheSlot: ScePvfPointer, data0: ScePvfPointer, size: ScePvfInt) -> ScePvfS32 ScePvfFontChcheReadFromCacheFunc :: #type ^proc "c" ( cacheInstance: ScePvfPointer, cacheSlot: ScePvfPointer, data0: ScePvfPointer) -> ScePvfS32 ScePvfCacheSystemInterface :: struct { cacheInstance: ^ScePvfPointer, lockFunc: ScePvfFontCacheLockFunc, unlockFunc: ScePvfFontChcheUnlockFunc, findFunc: ScePvfFontChcheFindFunc, writeKeyValueToCacheFunc: ScePvfFontChcheWriteKeyValueToCacheFunc, write0ToCacheFunc: ScePvfFontChcheWriteToCacheFunc, write1ToCacheFunc: ScePvfFontChcheWriteToCacheFunc, read0FromCacheFunc: ScePvfFontChcheReadFromCacheFunc, read1FromCacheFunc: ScePvfFontChcheReadFromCacheFunc, } when size_of(rawptr) == 4 { #assert(size_of(ScePvfCacheSystemInterface) == 0x24) } ScePvfAllocFunc :: #type ^proc "c" (userData: ScePvfPointer, size: ScePvfU32) -> ScePvfPointer ScePvfReallocFunc :: #type ^proc "c" ( userData: ScePvfPointer, old_ptr: ScePvfPointer, size: ScePvfU32) -> ScePvfPointer ScePvfFreeFunc :: #type ^proc "c" (userData: ScePvfPointer, ptr: ScePvfPointer) ScePvfInitRec :: struct { userData: ScePvfPointer, maxNumFonts: ScePvfU32, cache: ^ScePvfCacheSystemInterface, reserved: ScePvfPointer, allocFunc: ScePvfAllocFunc, reallocFunc: ScePvfReallocFunc, freeFunc: ScePvfFreeFunc, } when size_of(rawptr) == 4 { #assert(size_of(ScePvfInitRec) == 0x1C) } ScePvfFontStyleInfo :: struct { weight: ScePvfFloat32, familyCode: ScePvfU16, style: ScePvfU16, subStyle: ScePvfU16, //