10 #ifndef K_API_API_DEF_H
11 #define K_API_API_DEF_H
16 #define kDlCall xkDlCall
19 # define kFx(TYPE) kExportFx(TYPE)
20 # define kDx(TYPE) kExportDx(TYPE)
22 # define kFx(TYPE) kImportFx(TYPE)
23 # define kDx(TYPE) kImportDx(TYPE)
26 #define kInlineFx(TYPE) xkInlineFx(TYPE)
42 #define k8U_MAX (255U)
43 #define k8U_NULL (k8U_MAX)
58 #define k16U_MAX (65535U)
59 #define k16U_NULL (k16U_MAX)
74 #define k32U_MAX (4294967295U)
75 #define k32U_NULL (k32U_MAX)
89 #define k64U(CONST) xk64U(CONST)
90 #define k64U_MIN k64U(0)
91 #define k64U_MAX k64U(18446744073709551615)
92 #define k64U_NULL (k64U_MAX)
95 #define kINFINITE k64U_MAX
108 #define k8S_MAX (127)
109 #define k8S_MIN (-k8S_MAX -1)
110 #define k8S_NULL (k8S_MIN)
124 #define k16S_MAX (32767)
125 #define k16S_MIN (-k16S_MAX -1)
126 #define k16S_NULL (k16S_MIN)
140 #define k32S_MAX (2147483647)
141 #define k32S_MIN (-k32S_MAX -1)
142 #define k32S_NULL (k32S_MIN)
156 #define k64S(CONST) xk64S(CONST)
157 #define k64S_MAX k64S(9223372036854775807)
158 #define k64S_MIN (-k64S_MAX -1)
159 #define k64S_NULL (k64S_MIN)
173 #define k32F_MIN (1.175494351e-38F)
174 #define k32F_MAX (3.402823466e+38F)
175 #define k32F_NULL (-k32F_MAX)
189 #define k64F_MIN (2.2250738585072014e-308)
190 #define k64F_MAX (1.7976931348623157e+308)
191 #define k64F_NULL (-k64F_MAX)
202 kFx(k32s) k64f_IsNanOrInf(k64f value);
212 typedef xkByte
kByte;
222 typedef xkSize
kSize;
225 #define kSIZE_MAX xkSIZE_MAX
226 #define kSIZE_NULL kSIZE_MAX
239 kInlineFx(kSize) kSize_Align(kSize value, kSize to)
241 return ((value >> to) + !!(value & ((1 << to) - 1))) << to;
253 #define kSSIZE_MIN xkSSIZE_MIN
254 #define kSSIZE_MAX xkSSIZE_MAX
255 #define kSSIZE_NULL kSSIZE_MIN
265 typedef void* kPointer;
280 return (
kByte*)pointer + offset;
318 #define kPointer_ReadAs(POINTER, TYPE) \
329 #define kPointer_WriteAs(POINTER, VALUE, TYPE) \
330 (*(TYPE*)(POINTER) = (TYPE)(VALUE))
339 #define kIsNull(POINTER) \
365 typedef xkChar kChar;
376 return (ch >=
'A' && ch <=
'Z') ? (ch -
'A' +
'a') : ch;
388 return (ch >=
'a' && ch <=
'z') ? (ch -
'a' +
'A') : ch;
412 return ((ch >=
'a') && (ch <=
'z') ) || ((ch >=
'A') && (ch <=
'Z'));
424 return ch >=
'0' && ch <=
'9';
488 #define kERROR_STATE (-1000)
489 #define kERROR_NOT_FOUND (-999)
490 #define kERROR_COMMAND (-998)
491 #define kERROR_PARAMETER (-997)
492 #define kERROR_UNIMPLEMENTED (-996)
493 #define kERROR_MEMORY (-994)
494 #define kERROR_TIMEOUT (-993)
495 #define kERROR_INCOMPLETE (-992)
496 #define kERROR_STREAM (-991)
497 #define kERROR_CLOSED (-990)
498 #define kERROR_VERSION (-989)
499 #define kERROR_ABORT (-988)
500 #define kERROR_ALREADY_EXISTS (-987)
501 #define kERROR_NETWORK (-986)
502 #define kERROR_HEAP (-985)
503 #define kERROR_FORMAT (-984)
504 #define kERROR_READ_ONLY (-983)
505 #define kERROR_WRITE_ONLY (-982)
506 #define kERROR_BUSY (-981)
507 #define kERROR_CONFLICT (-980)
508 #define kERROR_OS (-979)
509 #define kERROR_DEVICE (-978)
510 #define kERROR_FULL (-977)
511 #define kERROR_IN_PROGRESS (-976)
525 kFx(const kChar*) kStatus_Name(kStatus status);
536 return status !=
kOK;
548 return status ==
kOK;
559 #define kCheck(EXPRESSION) \
571 #define kCheckTrue(EXPRESSION, STATUS) \
572 xkCheckTrue(EXPRESSION, STATUS)
582 #define kCheckArgs(EXPRESSION) \
583 xkCheckArgs(EXPRESSION)
593 #define kCheckState(EXPRESSION) \
594 xkCheckState(EXPRESSION)
610 #define kThrow(EXPRESSION) \
622 #define kTest(EXPRESSION) \
635 #define kTestTrue(EXPRESSION, STATUS) \
636 xkTestTrue(EXPRESSION, STATUS)
647 #define kTestArgs(EXPRESSION) \
648 xkTestArgs(EXPRESSION)
659 #define kTestState(EXPRESSION) \
660 xkTestState(EXPRESSION)
668 #define kCatch(STATUS_POINTER) \
669 xkCatch(STATUS_POINTER)
679 #define kEndCatch(STATUS) \
698 #define kEndFinally() \
707 #define kCatchEx(STATUS_POINTER) \
708 xkCatchEx(STATUS_POINTER)
720 #define kEndCatchEx(STATUS) \
739 #define kEndFinallyEx() \
749 #define kAssert(EXPRESSION) \
762 #define kAssertType(OBJECT, SYMBOL) \
763 xkAssertType(OBJECT, SYMBOL)
772 #define kTrace(TAG) \
785 #define kVERSION_NULL (k32U_NULL) // kVersion invalid value.
799 return (major & 0xFF) << 24 |
800 (minor & 0xFF) << 16 |
801 (release & 0xFF) << 8 |
815 #define kVersion_Stringify_(MAJOR, MINOR, RELEASE, BUILD) \
816 xkStringize(MAJOR) "." xkStringize(MINOR) "." xkStringize(RELEASE) "." xkStringize(BUILD)
852 return (
k32s)version1 - (
k32s)version2;
864 return (version >> 24) & 0xFF;
876 return (version >> 16) & 0xFF;
888 return (version >> 8) & 0xFF;
900 return (version) & 0xFF;
912 #define kENDIANNESS_LITTLE (1)
913 #define kENDIANNESS_BIG (2)
921 kInlineFx(kEndianness) kEndianness_Host()
1340 #define kPoint_Init_(POINT, X, Y) xkPoint_Init_(POINT, X, Y)
1412 #define kPoint3d_Init_(POINT, X, Y, Z) xkPoint3d_Init_(POINT, X, Y, Z)
1489 #define kRect_Init_(RECT, X, Y, W, H) \
1490 xkRect_Init_(RECT, X, Y, W, H)
1521 #define kRect3d_Init_(RECT, X, Y, Z, W, H, D) \
1522 xkRect3d_Init_(RECT, X, Y, Z, W, H, D)
1570 #define kRotatedRect_Init_(RECT, XC, YC, W, H, A) \
1571 xkRotatedRect_Init_(RECT, XC, YC, W, H, A)
1584 #define kPIXEL_FORMAT_NULL (0)
1585 #define kPIXEL_FORMAT_8BPP_GREYSCALE (1)
1586 #define kPIXEL_FORMAT_8BPP_CFA (2)
1587 #define kPIXEL_FORMAT_8BPC_BGRX (3)
1588 #define kPIXEL_FORMAT_1BPP_GREYSCALE (4)
1602 #define kCFA_NONE (0)
1603 #define kCFA_BAYER_BGGR (1)
1604 #define kCFA_BAYER_GBRG (2)
1605 #define kCFA_BAYER_RGGB (3)
1606 #define kCFA_BAYER_GRBG (4)
1634 #define kRgb_Init_(RGB, R, G, B) \
1635 xkRgb_Init_(RGB, R, G, B)
1663 #define kArgb_Init_(ARGB, A, R, G, B) \
1664 xkArgb_Init_(ARGB, A, R, G, B)
1674 #define kCOMPARISON_EQ (0)
1675 #define kCOMPARISON_NEQ (1)
1676 #define kCOMPARISON_LT (2)
1677 #define kCOMPARISON_LTE (3)
1678 #define kCOMPARISON_GT (4)
1679 #define kCOMPARISON_GTE (5)
1729 #define kFILE_MODE_READ (0x1)
1730 #define kFILE_MODE_WRITE (0x2)
1731 #define kFILE_MODE_UPDATE (0x4)
1740 typedef k32s kSeekOrigin;
1743 #define kSEEK_ORIGIN_BEGIN (0)
1744 #define kSEEK_ORIGIN_CURRENT (1)
1745 #define kSEEK_ORIGIN_END (2)
1754 typedef k32s kCompressionType;
1757 #define kCOMPRESSION_TYPE_NULL (0)
1758 #define kCOMPRESSION_TYPE_ZSTD (1)
1771 #define kCOMPRESSION_PRESET_MIN (-1)
1772 #define kCOMPRESSION_PRESET_FAST (-2)
1773 #define kCOMPRESSION_PRESET_DEFAULT (-3)
1774 #define kCOMPRESSION_PRESET_DENSE (-4)
1775 #define kCOMPRESSION_PRESET_MAX (-5)
1786 #define kCountOf(CARRAY) \
1787 (sizeof(CARRAY)/sizeof(CARRAY[0]))
1799 #define kCast(TYPE, ITEM) \
1811 #define kMin_(A, B) \
1812 (((A) < (B)) ? (A) : (B))
1824 #define kMax_(A, B) \
1825 (((A) > (B)) ? (A) : (B))
1837 #define kClamp_(V, VMIN, VMAX) \
1838 (kMin_(kMax_((V), (VMIN)), (VMAX)))
1849 (((A) >= 0) ? (A) : -(A))
1861 #define kDivideFloorInt_(A, B) \
1862 (((A) >= 0) ? (A) / (B) : ((A) - (B) + 1) / (B))
1873 #define kDivideCeilInt_(A, B) \
1874 (((A) >= 0) ? ((A) + (B) - 1) / (B) : (A) / (B))
1883 #define kDivideFloorUInt_(A, B) \
1895 #define kDivideCeilUInt_(A, B) \
1896 (((A) + (B) - 1) / (B))
1903 #define kZero(VALUE) \
1904 memset(&VALUE, 0, sizeof(VALUE))
1922 memcpy(dest, src, size);
1940 memset(dest, 0, size);
1951 #define kTypeName kText64
1960 typedef k32u kTypeFlags;
1963 #define kTYPE_FLAGS_CLASS (0x01)
1964 #define kTYPE_FLAGS_INTERFACE (0x02)
1965 #define kTYPE_FLAGS_VALUE (0x04)
1966 #define kTYPE_FLAGS_ENUM (0x08)
1967 #define kTYPE_FLAGS_ABSTRACT (0x20)
1968 #define kTYPE_FLAGS_ARRAY_VALUE (0x40)
1969 #define kTYPE_FLAGS_PRIMITIVE (0x80)
1978 typedef kPointer kTypeVersion;
2043 #define kTypeOf(SYMBOL) \
2071 #define kAssemblyOf(SYMBOL) \
2072 xkAssemblyOf(SYMBOL)
2082 #define kStaticOf(SYMBOL) \
2092 #define kDeprecate(SYMBOL) \
2093 xkDeprecate(#SYMBOL)
2103 #define kWarn(MESSAGE) \
2122 #define kDeclareAssembly(PREFIX, SYMBOL) \
2123 xkDeclareAssembly(PREFIX, SYMBOL)
2134 #define kBeginAssembly(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION) \
2135 xkBeginAssembly(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION)
2142 #define kEndAssembly() \
2153 #define kDeclareValue(PREFIX, SYMBOL, BASE) \
2154 xkDeclareValue(PREFIX, SYMBOL, BASE)
2164 #define kBeginValue(PREFIX, SYMBOL, BASE) \
2165 xkBeginValue(PREFIX, SYMBOL, BASE)
2172 #define kEndValue() \
2183 #define kDeclareEnum(PREFIX, SYMBOL, BASE) \
2184 xkDeclareEnum(PREFIX, SYMBOL, BASE)
2194 #define kBeginEnum(PREFIX, SYMBOL, BASE) \
2195 xkBeginEnum(PREFIX, SYMBOL, BASE)
2202 #define kEndEnum() \
2213 #define kDeclareArrayValue(PREFIX, SYMBOL, BASE) \
2214 xkDeclareArrayValue(PREFIX, SYMBOL, BASE)
2225 #define kBeginArrayValue(PREFIX, SYMBOL, TYPE, BASE) \
2226 xkBeginArrayValue(PREFIX, SYMBOL, TYPE, BASE)
2233 #define kEndArrayValue() \
2244 #define kDeclareInterface(PREFIX, SYMBOL, BASE) \
2245 xkDeclareInterface(PREFIX, SYMBOL, BASE)
2255 #define kBeginInterface(PREFIX, SYMBOL, BASE) \
2256 xkBeginInterface(PREFIX, SYMBOL, BASE)
2263 #define kEndInterface() \
2274 #define kDeclareFullClass(PREFIX, SYMBOL, BASE) \
2275 xkDeclareFullClass(PREFIX, SYMBOL, BASE)
2285 #define kBeginFullClass(PREFIX, SYMBOL, BASE) \
2286 xkBeginFullClass(PREFIX, SYMBOL, BASE)
2293 #define kEndFullClass() \
2304 #define kDeclareVirtualClass(PREFIX, SYMBOL, BASE) \
2305 xkDeclareVirtualClass(PREFIX, SYMBOL, BASE)
2315 #define kBeginVirtualClass(PREFIX, SYMBOL, BASE) \
2316 xkBeginVirtualClass(PREFIX, SYMBOL, BASE)
2323 #define kEndVirtualClass() \
2333 #define kDeclareStaticClass(PREFIX, SYMBOL) \
2334 xkDeclareStaticClass(PREFIX, SYMBOL)
2343 #define kBeginStaticClass(PREFIX, SYMBOL) \
2344 xkBeginStaticClass(PREFIX, SYMBOL)
2351 #define kEndStaticClass() \
2362 #define kDeclareClass(PREFIX, SYMBOL, BASE) \
2363 xkDeclareClass(PREFIX, SYMBOL, BASE)
2373 #define kBeginClass(PREFIX, SYMBOL, BASE) \
2374 xkBeginClass(PREFIX, SYMBOL, BASE)
2381 #define kEndClass() \
2401 #define kDeclareAssemblyEx(PREFIX, SYMBOL) \
2402 xkDeclareAssemblyEx(PREFIX, SYMBOL)
2413 #define kBeginAssemblyEx(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION) \
2414 xkBeginAssemblyEx(PREFIX, SYMBOL, VERSION, PLATFORM_VERSION)
2421 #define kEndAssemblyEx() \
2432 #define kDeclareValueEx(PREFIX, SYMBOL, BASE) \
2433 xkDeclareValueEx(PREFIX, SYMBOL, BASE)
2442 #define kBeginValueEx(PREFIX, SYMBOL) \
2443 xkBeginValueEx(PREFIX, SYMBOL)
2450 #define kEndValueEx() \
2461 #define kDeclareEnumEx(PREFIX, SYMBOL, BASE) \
2462 xkDeclareEnumEx(PREFIX, SYMBOL, BASE)
2471 #define kBeginEnumEx(PREFIX, SYMBOL) \
2472 xkBeginEnumEx(PREFIX, SYMBOL)
2479 #define kEndEnumEx() \
2490 #define kDeclareArrayValueEx(PREFIX, SYMBOL, BASE) \
2491 xkDeclareArrayValueEx(PREFIX, SYMBOL, BASE)
2501 #define kBeginArrayValueEx(PREFIX, SYMBOL, TYPE) \
2502 xkBeginArrayValueEx(PREFIX, SYMBOL, TYPE)
2509 #define kEndArrayValueEx() \
2520 #define kDeclareInterfaceEx(PREFIX, SYMBOL, BASE) \
2521 xkDeclareInterfaceEx(PREFIX, SYMBOL, BASE)
2530 #define kBeginInterfaceEx(PREFIX, SYMBOL) \
2531 xkBeginInterfaceEx(PREFIX, SYMBOL)
2538 #define kEndInterfaceEx() \
2549 #define kDeclareFullClassEx(PREFIX, SYMBOL, BASE) \
2550 xkDeclareFullClassEx(PREFIX, SYMBOL, BASE)
2559 #define kBeginFullClassEx(PREFIX, SYMBOL) \
2560 xkBeginFullClassEx(PREFIX, SYMBOL)
2567 #define kEndFullClassEx() \
2578 #define kDeclareVirtualClassEx(PREFIX, SYMBOL, BASE) \
2579 xkDeclareVirtualClassEx(PREFIX, SYMBOL, BASE)
2588 #define kBeginVirtualClassEx(PREFIX, SYMBOL) \
2589 xkBeginVirtualClassEx(PREFIX, SYMBOL)
2596 #define kEndVirtualClassEx() \
2597 xkEndVirtualClassEx()
2606 #define kDeclareStaticClassEx(PREFIX, SYMBOL) \
2607 xkDeclareStaticClassEx(PREFIX, SYMBOL)
2616 #define kBeginStaticClassEx(PREFIX, SYMBOL) \
2617 xkBeginStaticClassEx(PREFIX, SYMBOL)
2624 #define kEndStaticClassEx() \
2625 xkEndStaticClassEx()
2635 #define kDeclareClassEx(PREFIX, SYMBOL, BASE) \
2636 xkDeclareClassEx(PREFIX, SYMBOL, BASE)
2645 #define kBeginClassEx(PREFIX, SYMBOL) \
2646 xkBeginClassEx(PREFIX, SYMBOL)
2653 #define kEndClassEx() \
2671 #define kAddDependency(SYMBOL) \
2672 xkAddDependency(SYMBOL)
2680 #define kAddType(SYMBOL) \
2693 #define kAddPriority(SYMBOL) \
2694 xkAddPriority(SYMBOL)
2704 #define kAddStatic(SYMBOL) \
2714 #define kAddInterface(SYMBOL, IFACE) \
2715 xkAddInterface(SYMBOL, IFACE)
2724 #define kAddMethod(SYMBOL, METHOD) \
2725 xkAddMethod(SYMBOL, METHOD)
2735 #define kAddVMethod(IN_TYPE, FROM_TYPE, METHOD) \
2736 xkAddVMethod(IN_TYPE, FROM_TYPE, METHOD)
2748 #define kAddPrivateVMethod(IN_TYPE, FROM_TYPE, METHOD) \
2749 xkAddPrivateVMethod(IN_TYPE, FROM_TYPE, METHOD)
2760 #define kAddIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD) \
2761 xkAddIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD)
2774 #define kAddPrivateIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD) \
2775 xkAddPrivateIVMethod(IN_TYPE, FROM_IFACE, IMETHOD, CMETHOD)
2785 #define kAddField(VALUE, FIELD_TYPE, FIELD) \
2786 xkAddField(VALUE, FIELD_TYPE, FIELD)
2795 #define kAddEnumerator \
2809 #define kAddVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD) \
2810 xkAddVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD)
2825 #define kAddPrivateVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD) \
2826 xkAddPrivateVersion(TYPE, FORMAT, FORMAT_VER, GUID, WRITE_METHOD, READ_METHOD)
2841 #define kAddAbstractVersion(TYPE, FORMAT, FORMAT_VER, GUID) \
2842 xkAddAbstractVersion(TYPE, FORMAT, FORMAT_VER, GUID)
2851 #define kAddFlags(TYPE, FLAGS) \
2852 xkAddFlags(TYPE, FLAGS)
2875 #define kDefineDebugHints() \
2876 xkDefineDebugHints()
2892 #define kObj(TypeName_T, T_object) \
2893 TypeName_T##Class* obj K_ATTRIBUTE_UNUSED = xx##TypeName_T##_Cast(T_object, __FILE__, __LINE__)
2904 #define kObjR(TypeName_T, T_object) \
2905 TypeName_T##Class* obj K_ATTRIBUTE_UNUSED = x##TypeName_T##_CastRaw(T_object)
2918 #define kObjN(TypeName_T, VarName_obj, T_object) \
2919 TypeName_T##Class* VarName_obj = xx##TypeName_T##_Cast(T_object, __FILE__, __LINE__)
2931 #define kObjNR(TypeName_T, VarName_obj, T_object) \
2932 TypeName_T##Class* VarName_obj = x##TypeName_T##_CastRaw(T_object)
2939 #define kStaticObj(TypeName_T) \
2940 TypeName_T##Static* sobj = kStaticOf(TypeName_T)
2953 #define kInitFields(TYPE, OBJECT) \
2954 xkInitFields(TYPE, OBJECT)
2966 #define kCastClass_(TYPE, OBJECT) \
2967 xkCastClass_(TYPE, OBJECT)
2979 #define kCastVTable_(TYPE, OBJECT) \
2980 xkCastVTable_(TYPE, OBJECT)
2992 #define kCastIVTable_(IFACE, OBJECT) \
2993 xkCastIVTable_(IFACE, OBJECT)
3000 #define kDebugBreak() \
3003 #include <kApi/kApiDef.x.h>
k32f y
Y-coordinate value.
Definition: kApiDef.h:1314
kStatus k32s_Parse(k32s *value, const kChar *str)
Converts string to k32s value.
k64f height
Height of the rectangular cuboid.
Definition: kApiDef.h:1506
Represents a 64-unit, null-terminated, kChar sequence.
Represents a 32-bit unsigned integer.
k32s y
Y-coordinate of the origin.
Definition: kApiDef.h:1441
kBool kChar_IsSpace(kChar ch)
Checks whether ASCII character is a some kind of white space character type.
Definition: kApiDef.h:398
kStatus kBool_Parse(kBool *value, const kChar *str)
Converts string to kBool value.
k64f height
Height of the rectangle.
Definition: kApiDef.h:1475
k32f x
X-coordinate of the origin.
Definition: kApiDef.h:1456
Rectangle structure with 32-bit signed integer fields.
Definition: kApiDef.h:1438
3D point structure with 32-bit floating-point fields.
Definition: kApiDef.h:1380
k64f x
X-coordinate of the origin.
Definition: kApiDef.h:1472
k32s width
Width of the rectangle.
Definition: kApiDef.h:1536
k8u b
Blue component value.
Definition: kApiDef.h:1619
k32s y
Y-coordinate value.
Definition: kApiDef.h:1368
k16s width
Width of the rectangle.
Definition: kApiDef.h:1426
32-bit color pixel structure (B/G/R/A).
Definition: kApiDef.h:1645
k16s y
Y-coordinate of the origin.
Definition: kApiDef.h:1425
2D point structure with 16-bit signed integer fields.
Definition: kApiDef.h:1283
kChar kChar_ToLower(kChar ch)
Convert ASCII character to lower case.
Definition: kApiDef.h:374
Represents a 64-bit unsigned integer.
Architecture/compiler-specific definitions.
kBool kSuccess(kStatus status)
Returns kTRUE if the given expression value is kOK.
Definition: kApiDef.h:546
Represents a 256-unit, null-terminated, kChar sequence.
kTypeName methodName
Method name (e.g. "Clone").
Definition: kApiDef.h:1987
kPointer receiver
Callback receiver context pointer.
Definition: kApiDef.h:1717
kTypeName name
Enumerator name (e.g. "kPIXEL_FORMAT_8BPP_GREYSCALE").
Definition: kApiDef.h:2013
Rotated rectangle structure with 32-bit floating-point fields.
Definition: kApiDef.h:1549
k64f y
Y-coordinate of the origin.
Definition: kApiDef.h:1473
k32s z
Z-coordinate value.
Definition: kApiDef.h:1369
Represents a void pointer.
32-bit color pixel structure (B/G/R/X).
Definition: kApiDef.h:1617
kStatus kSize_Parse(kSize *value, const kChar *str)
Converts string to kSize value.
k32f x
X-coordinate value.
Definition: kApiDef.h:1313
kStatus kSSize_Parse(kSSize *value, const kChar *str)
Converts string to kSSize value.
kBool kChar_IsLetter(kChar ch)
Checks whether ASCII character is a letter.
Definition: kApiDef.h:410
k16s z
Z-coordinate value.
Definition: kApiDef.h:1354
kStatus k32f_Format(k32f value, kChar *buffer, kSize capacity)
Converts k32f value to string.
Represents a 16-bit unsigned integer.
kStatus k32u_Format(k32u value, kChar *buffer, kSize capacity)
Converts k32u value to string.
k32s xc
X-coordinate of the rectangle center.
Definition: kApiDef.h:1534
Rotated rectangle structure with 32-bit signed integer fields.
Definition: kApiDef.h:1532
k32f yc
Y-coordinate of the rectangle center.
Definition: kApiDef.h:1552
kStatus kBool_Format(kBool value, kChar *buffer, kSize capacity)
Converts kBool value to string.
Represents an unsigned integer that can store a pointer address.
k32s angle
Rotation angle of the rectangle.
Definition: kApiDef.h:1538
void * kPointer_ItemOffset(const void *pointer, kSSize itemIndex, kSize itemSize)
Gets a pointer to the Nth element of an array.
Definition: kApiDef.h:292
kTypeName displayName
Formatted display name (e.g. "8bpp Greyscale");.
Definition: kApiDef.h:2014
Represents type field information.
Definition: kApiDef.h:1997
k64f width
Width of the rectangular cuboid.
Definition: kApiDef.h:1505
Represents an 8-bit unsigned integer.
k64f x
X-coordinate of the origin.
Definition: kApiDef.h:1502
k64f depth
Depth of the rectangular cuboid.
Definition: kApiDef.h:1507
#define kInlineFx(TYPE)
Inline method declaration helper.
Definition: kApiDef.h:26
k64f y
Y-coordinate value.
Definition: kApiDef.h:1398
k64f x
X-coordinate value.
Definition: kApiDef.h:1397
Represents enumerator information.
Definition: kApiDef.h:2010
Represents a single unit (byte) in a UTF-8 character.
Represents a byte on the current platform.
kStatus k64s_Format(k64s value, kChar *buffer, kSize capacity)
Converts k64s value to string.
kStatus k16u_Parse(k16u *value, const kChar *str)
Converts string to k16u value.
k16s x
X-coordinate value.
Definition: kApiDef.h:1285
k16s y
Y-coordinate value.
Definition: kApiDef.h:1353
kStatus kSSize_Format(kSSize value, kChar *buffer, kSize capacity)
Converts kSSize value to string.
kSize(kCall * kHashFx)(const void *item)
Callback signature to determine hash code of an item.
Definition: kApiDef.h:1696
kStatus k64f_Parse(k64f *value, const kChar *str)
Converts string to k64f value.
k32f angle
Rotation angle of the rectangle.
Definition: kApiDef.h:1555
Represents a signed integer that can store a pointer address.
typedef kStatus(kCall *kMsgQueueDropFx)(kPointer receiver
Defines the signature of a callback function to handle dropped items.
k32s height
Height of the rectangle.
Definition: kApiDef.h:1443
Rectangle structure with 32-bit floating-point fields.
Definition: kApiDef.h:1454
kBool kIsError(kStatus status)
Returns kTRUE if the given status value is not kOK.
Definition: kApiDef.h:534
k32s kVersion_Compare(kVersion version1, kVersion version2)
Returns an integral value indicating the relationship between the versions.
Definition: kApiDef.h:850
k32s width
Width of the rectangle.
Definition: kApiDef.h:1442
kStatus k32u_Parse(k32u *value, const kChar *str)
Converts string to k32u value.
k32s x
X-coordinate value.
Definition: kApiDef.h:1299
k32s height
Height of the rectangle.
Definition: kApiDef.h:1537
Rectangle structure with 64-bit floating-point fields.
Definition: kApiDef.h:1470
Represents a 128-unit, null-terminated, kChar sequence.
k32f x
X-coordinate value.
Definition: kApiDef.h:1382
k8u kVersion_Minor(kVersion version)
Returns the minor part of a version number.
Definition: kApiDef.h:874
kChar kChar_ToUpper(kChar ch)
Convert ASCII character to upper case.
Definition: kApiDef.h:386
kStatus k16s_Format(k16s value, kChar *buffer, kSize capacity)
Converts k16s value to string.
kBool(kCall * kEqualsFx)(const void *item1, const void *item2)
Callback signature to determine equality of two items.
Definition: kApiDef.h:1688
k8u kVersion_Major(kVersion version)
Returns the major part of a version number.
Definition: kApiDef.h:862
k16s y
Y-coordinate value.
Definition: kApiDef.h:1286
Represents type method information.
Definition: kApiDef.h:1985
k16s x
X-coordinate value.
Definition: kApiDef.h:1352
k32f z
Z-coordinate value.
Definition: kApiDef.h:1384
kTypeName name
Field name.
Definition: kApiDef.h:1999
kStatus k32f_Parse(k32f *value, const kChar *str)
Converts string to k32f value.
k64f width
Width of the rectangle.
Definition: kApiDef.h:1474
k64f z
Z-coordinate value.
Definition: kApiDef.h:1399
Represents a callback function and context pointer.
Definition: kApiDef.h:1714
void kItemCopy(void *dest, const void *src, kSize size)
Performs a small copy with minimal overhead.
Definition: kApiDef.h:1920
k8u kVersion_Build(kVersion version)
Returns the build part of a version number.
Definition: kApiDef.h:898
k8u r
Red component value.
Definition: kApiDef.h:1649
2D point structure with 32-bit floating-point fields.
Definition: kApiDef.h:1311
k64f y
Y-coordinate of the origin.
Definition: kApiDef.h:1503
kStatus k32s_Format(k32s value, kChar *buffer, kSize capacity)
Converts k32s value to string.
Preset compression levels.
k32s yc
Y-coordinate of the rectangle center.
Definition: kApiDef.h:1535
Represents a 32-bit signed integer.
void * kPointer_ByteOffset(const void *pointer, kSSize offset)
Calculates a pointer address from a base address and a byte offset.
Definition: kApiDef.h:278
void(kCall * kFunction)()
Generic pointer to function.
Definition: kApiDef.h:28
k8u r
Red component value.
Definition: kApiDef.h:1621
k32f height
Height of the rectangle.
Definition: kApiDef.h:1554
kBool kChar_IsDigit(kChar ch)
Checks whether ASCII character is a digit.
Definition: kApiDef.h:422
k64f x
X-coordinate value.
Definition: kApiDef.h:1327
void kItemZero(void *dest, kSize size)
Zero-initializes a small amount of memory with minimal overhead.
Definition: kApiDef.h:1938
kVersion kVersion_Create(k32u major, k32u minor, k32u release, k32u build)
Creates a version value from its constituent parts.
Definition: kApiDef.h:797
kType type
Field type.
Definition: kApiDef.h:2000
k8u kVersion_Release(kVersion version)
Returns the release part of a version number.
Definition: kApiDef.h:886
kEndianness kEndianness_Host()
Reports the endianness of the current platform.
Definition: kApiDef.h:921
kStatus k16s_Parse(k16s *value, const kChar *str)
Converts string to k16s value.
2D point structure with 64-bit floating-point fields.
Definition: kApiDef.h:1325
kBool kEndianness_ShouldReverse(kEndianness endianness)
Reports whether byte ordering must be reversed to be consistent with the current platform.
Definition: kApiDef.h:932
kStatus(kCall * kCallbackFx)(kPointer receiver, kPointer sender, void *args)
Callback signature for a generic event handler.
Definition: kApiDef.h:1706
k8u g
Green component value.
Definition: kApiDef.h:1620
Represents a 64-bit signed integer.
kStatus kSize_Format(kSize value, kChar *buffer, kSize capacity)
Converts kSize value to string.
kStatus kVersion_Format(kVersion version, kChar *buffer, kSize capacity)
Formats a version to a string buffer.
Represents a 16-unit, null-terminated, kChar sequence.
Flags that control how a file is opened.
Represents an 8-bit signed integer.
Represents the byte-ordering of primitive data types.
k32f width
Width of the rectangle.
Definition: kApiDef.h:1553
k8u b
Blue component value.
Definition: kApiDef.h:1647
k16s height
Height of the rectangle.
Definition: kApiDef.h:1427
kStatus k8s_Format(k8s value, kChar *buffer, kSize capacity)
Converts k8s value to string.
Represents metadata about a type (class, interface, or value).
k8u g
Green component value.
Definition: kApiDef.h:1648
kStatus k64s_Parse(k64s *value, const kChar *str)
Converts string to k64s value.
k32s x
X-coordinate value.
Definition: kApiDef.h:1367
kStatus kVersion_Parse(kVersion *version, const kChar *buffer)
Parses a version from a formatted string.
Represents a 32-unit, null-terminated, kChar sequence.
3D point structure with 16-bit signed integer fields.
Definition: kApiDef.h:1350
k32s value
Enumerator numeric value.
Definition: kApiDef.h:2012
kTypeName functionName
Full function name (e.g. "kObject_Clone").
Definition: kApiDef.h:1988
Represents a 16-bit signed integer.
k32f y
Y-coordinate of the origin.
Definition: kApiDef.h:1457
Represents a 32-bit floating-point number.
k64f y
Y-coordinate value.
Definition: kApiDef.h:1328
Represents a version number.
k8u a
Alpha component value.
Definition: kApiDef.h:1650
#define kOK
Operation successful.
Definition: kApiDef.h:513
Represents an error code.
k64f z
Z-coordinate of the origin.
Definition: kApiDef.h:1504
kStatus k64u_Format(k64u value, kChar *buffer, kSize capacity)
Converts k64u value to string.
k8u x
Undefined.
Definition: kApiDef.h:1622
k32s y
Y-coordinate value.
Definition: kApiDef.h:1300
kSize offset
Offset of field within structure (bytes).
Definition: kApiDef.h:2001
#define kCall
kApi standard function calling convention.
Definition: kApiDef.h:15
k32f width
Width of the rectangle.
Definition: kApiDef.h:1458
kStatus k16u_Format(k16u value, kChar *buffer, kSize capacity)
Converts k16u value to string.
Rectangular cuboid structure with 64-bit floating-point fields.
Definition: kApiDef.h:1500
kStatus k64f_Format(k64f value, kChar *buffer, kSize capacity)
Converts k64f value to string.
Rectangle structure with 16-bit signed integer fields.
Definition: kApiDef.h:1422
kStatus k8u_Format(k8u value, kChar *buffer, kSize capacity)
Converts k8u value to string.
Represents a 64-bit floating-point number.
Represents a comparison type.
kSSize kPointer_Diff(void *a, void *b)
Calculates the signed difference between two pointers.
Definition: kApiDef.h:305
k32s x
X-coordinate of the origin.
Definition: kApiDef.h:1440
k32f xc
X-coordinate of the rectangle center.
Definition: kApiDef.h:1551
2D point structure with 32-bit signed integer fields.
Definition: kApiDef.h:1297
Represents a boolean value.
kStatus k64u_Parse(k64u *value, const kChar *str)
Converts string to k64u value.
k16s x
X-coordinate of the origin.
Definition: kApiDef.h:1424
kSize count
Count of values in this field (typically 1; can be higher for "array value" fields, e.g. kText32).
Definition: kApiDef.h:2002
k32f height
Height of the rectangle.
Definition: kApiDef.h:1459
3D point structure with 64-bit floating-point fields.
Definition: kApiDef.h:1395
3D point structure with 32-bit signed integer fields.
Definition: kApiDef.h:1365
kStatus k8u_Parse(k8u *value, const kChar *str)
Converts string to k8u value.
k32f y
Y-coordinate value.
Definition: kApiDef.h:1383
kStatus k8s_Parse(k8s *value, const kChar *str)
Converts string to k8s value.