47 |
|
|
48 |
extern struct state_table *native_font_state_table; |
extern struct state_table *native_font_state_table; |
49 |
extern struct state_table *native_glyphvector_state_table; |
extern struct state_table *native_glyphvector_state_table; |
50 |
|
struct state_table *native_text_layout_state_table; |
51 |
|
|
52 |
#define NSA_FONT_INIT(env, clazz) \ |
#define NSA_FONT_INIT(env, clazz) \ |
53 |
native_font_state_table = init_state_table (env, clazz) |
native_font_state_table = init_state_table (env, clazz) |
74 |
#define NSA_DEL_GV_PTR(env, obj) \ |
#define NSA_DEL_GV_PTR(env, obj) \ |
75 |
remove_state_slot (env, obj, native_glyphvector_state_table) |
remove_state_slot (env, obj, native_glyphvector_state_table) |
76 |
|
|
77 |
|
|
78 |
|
#define NSA_TEXT_LAYOUT_INIT(env, clazz) \ |
79 |
|
native_text_layout_state_table = init_state_table (env, clazz) |
80 |
|
|
81 |
|
#define NSA_GET_TEXT_LAYOUT_PTR(env, obj) \ |
82 |
|
get_state (env, obj, native_text_layout_state_table) |
83 |
|
|
84 |
|
#define NSA_SET_TEXT_LAYOUT_PTR(env, obj, ptr) \ |
85 |
|
set_state (env, obj, native_text_layout_state_table, (void *)ptr) |
86 |
|
|
87 |
|
#define NSA_DEL_TEXT_LAYOUT_PTR(env, obj) \ |
88 |
|
remove_state_slot (env, obj, native_text_layout_state_table) |
89 |
|
|
90 |
|
#define FONT_METRICS_ASCENT 0 |
91 |
|
#define FONT_METRICS_MAX_ASCENT 1 |
92 |
|
#define FONT_METRICS_DESCENT 2 |
93 |
|
#define FONT_METRICS_MAX_DESCENT 3 |
94 |
|
#define FONT_METRICS_MAX_ADVANCE 4 |
95 |
|
#define NUM_FONT_METRICS 5 |
96 |
|
|
97 |
|
#define TEXT_METRICS_X_BEARING 0 |
98 |
|
#define TEXT_METRICS_Y_BEARING 1 |
99 |
|
#define TEXT_METRICS_WIDTH 2 |
100 |
|
#define TEXT_METRICS_HEIGHT 3 |
101 |
|
#define TEXT_METRICS_X_ADVANCE 4 |
102 |
|
#define TEXT_METRICS_Y_ADVANCE 5 |
103 |
|
#define NUM_TEXT_METRICS 6 |
104 |
|
|
105 |
struct peerfont |
struct peerfont |
106 |
{ |
{ |
107 |
PangoFont *font; |
PangoFont *font; |
108 |
PangoFontDescription *desc; |
PangoFontDescription *desc; |
109 |
PangoContext *ctx; |
PangoContext *ctx; |
110 |
|
PangoLayout *layout; |
111 |
|
/* |
112 |
|
* The GdkGraphics2D (using cairo) may store a pointer to a |
113 |
|
* cairo_font_t here; since we want to work equally well with |
114 |
|
* the GdkGraphics class (using GDK) we do not explicitly mention |
115 |
|
* cairo types here; it is up to the higher level driver routine |
116 |
|
* in GdkClasspathFontPeer.java to decide which backend functions |
117 |
|
* to invoke. |
118 |
|
*/ |
119 |
|
void *graphics_resource; |
120 |
}; |
}; |
121 |
|
|
122 |
struct glyphvec |
struct glyphvec |
129 |
PangoContext *ctx; |
PangoContext *ctx; |
130 |
}; |
}; |
131 |
|
|
132 |
|
struct textlayout |
133 |
|
{ |
134 |
|
PangoLayout *pango_layout; |
135 |
|
}; |
136 |
|
|
137 |
#endif /* __GDKFONT_H__ */ |
#endif /* __GDKFONT_H__ */ |