aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/extras/freetype2/src/otlayout/otlayout.h
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/extras/freetype2/src/otlayout/otlayout.h')
-rw-r--r--nx-X11/extras/freetype2/src/otlayout/otlayout.h205
1 files changed, 205 insertions, 0 deletions
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlayout.h b/nx-X11/extras/freetype2/src/otlayout/otlayout.h
new file mode 100644
index 000000000..2cd67f568
--- /dev/null
+++ b/nx-X11/extras/freetype2/src/otlayout/otlayout.h
@@ -0,0 +1,205 @@
+#ifndef __OT_LAYOUT_H__
+#define __OT_LAYOUT_H__
+
+
+#include "otlconf.h"
+
+OTL_BEGIN_HEADER
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** BASE DATA TYPES *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+ typedef unsigned char OTL_Byte;
+ typedef const OTL_Byte* OTL_Bytes;
+
+ typedef int OTL_Error;
+
+ typedef void* OTL_Pointer;
+
+ typedef int OTL_Int;
+ typedef unsigned int OTL_UInt;
+
+ typedef long OTL_Long;
+ typedef unsigned long OTL_ULong;
+
+ typedef short OTL_Int16;
+ typedef unsigned short OTL_UInt16;
+
+
+#if OTL_SIZEOF_INT == 4
+
+ typedef int OTL_Int32;
+ typedef unsigned int OTL_UInt32;
+
+#elif OTL_SIZEOF_LONG == 4
+
+ typedef long OTL_Int32;
+ typedef unsigned long OTL_UInt32;
+
+#else
+# error "no 32-bits type found"
+#endif
+
+ typedef OTL_UInt32 OTL_Tag;
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** ERROR CODES *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+ typedef enum
+ {
+ OTL_Err_Ok = 0,
+ OTL_Err_InvalidArgument,
+ OTL_Err_InvalidFormat,
+ OTL_Err_InvalidOffset,
+
+ OTL_Err_Max
+
+ } OTL_Error;
+
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** MEMORY MANAGEMENT *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+ typedef OTL_Pointer (*OTL_AllocFunc)( OTL_ULong size,
+ OTL_Pointer data );
+
+ typedef OTL_Pointer (*OTL_ReallocFunc)( OTL_Pointer block,
+ OTL_ULong size,
+ OTL_Pointer data );
+
+ typedef void (*OTL_FreeFunc)( OTL_Pointer block,
+ OTL_Pointer data );
+
+ typedef struct OTL_MemoryRec_
+ {
+ OTL_Pointer mem_data;
+ OTL_AllocFunc mem_alloc;
+ OTL_ReallocFunc mem_realloc;
+ OTL_FreeFunc mem_free;
+
+ } OTL_MemoryRec, *OTL_Memory;
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** ENUMERATIONS *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+/* re-define OTL_MAKE_TAG to something different if you're not */
+/* using an ASCII-based character set (Vaxes anyone ?) */
+#ifndef OTL_MAKE_TAG
+#define OTL_MAKE_TAG(c1,c2,c3,c4) \
+ ( ( (OTL_UInt32)(c1) << 24 ) | \
+ (OTL_UInt32)(c2) << 16 ) | \
+ (OTL_UInt32)(c3) << 8 ) | \
+ (OTL_UInt32)(c4) )
+#endif
+
+ typedef enum OTL_ScriptTag_
+ {
+ OTL_SCRIPT_NONE = 0,
+
+#define OTL_SCRIPT_TAG(c1,c2,c3,c4,s,n) OTL_SCRIPT_TAG_ ## n = OTL_MAKE_TAG(c1,c2,c3,c4),
+#include "otltags.h"
+
+ OTL_SCRIPT_MAX
+
+ } OTL_ScriptTag;
+
+
+ typedef enum OTL_LangTag_
+ {
+ OTL_LANG_DEFAULT = 0,
+
+#define OTL_LANG_TAG(c1,c2,c3,c4,s,n) OTL_LANG_TAG_ ## n = OTL_MAKE_TAG(c1,c2,c3,c4),
+#include "otltags.h"
+
+ OTL_LANG_MAX
+
+ } OTL_LangTag;
+
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** MEMORY READS *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+#define OTL_PEEK_USHORT(p) ( ((OTL_UInt)((p)[0]) << 8) | \
+ ((OTL_UInt)((p)[1]) ) )
+
+#define OTL_PEEK_ULONG(p) ( ((OTL_UInt32)((p)[0]) << 24) | \
+ ((OTL_UInt32)((p)[1]) << 16) | \
+ ((OTL_UInt32)((p)[2]) << 8) | \
+ ((OTL_UInt32)((p)[3]) ) )
+
+#define OTL_PEEK_SHORT(p) ((OTL_Int16)OTL_PEEK_USHORT(p))
+
+#define OTL_PEEK_LONG(p) ((OTL_Int32)OTL_PEEK_ULONG(p))
+
+#define OTL_NEXT_USHORT(p) ( (p) += 2, OTL_PEEK_USHORT((p)-2) )
+#define OTL_NEXT_ULONG(p) ( (p) += 4, OTL_PEEK_ULONG((p)-4) )
+
+#define OTL_NEXT_SHORT(p) ((OTL_Int16)OTL_NEXT_USHORT(p))
+#define OTL_NEXT_LONG(p) ((OTL_Int32)OTL_NEXT_ULONG(p))
+
+ /************************************************************************/
+ /************************************************************************/
+ /***** *****/
+ /***** VALIDATION *****/
+ /***** *****/
+ /************************************************************************/
+ /************************************************************************/
+
+ typedef struct OTL_ValidatorRec_* OTL_Validator;
+
+ typedef struct OTL_ValidatorRec_
+ {
+ OTL_Bytes limit;
+ OTL_Bytes base;
+ OTL_Error error;
+ OTL_jmp_buf jump_buffer;
+
+ } OTL_ValidatorRec;
+
+ typedef void (*OTL_ValidateFunc)( OTL_Bytes table,
+ OTL_Valid valid );
+
+ OTL_API( void )
+ otl_validator_error( OTL_Validator validator,
+ OTL_Error error );
+
+#define OTL_INVALID(e) otl_validator_error( valid, e )
+
+#define OTL_INVALID_TOO_SHORT OTL_INVALID( OTL_Err_InvalidOffset )
+#define OTL_INVALID_DATA OTL_INVALID( OTL_Err_InvalidFormat )
+
+#define OTL_CHECK(_count) OTL_BEGIN_STMNT \
+ if ( p + (_count) > valid->limit ) \
+ OTL_INVALID_TOO_SHORT; \
+ OTL_END_STMNT
+
+ /* */
+
+OTL_END_HEADER
+
+#endif /* __OPENTYPE_LAYOUT_H__ */