diff options
Diffstat (limited to 'libraries/evas/src/modules/engines/direct3d/evas_engine.h')
-rw-r--r-- | libraries/evas/src/modules/engines/direct3d/evas_engine.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_engine.h b/libraries/evas/src/modules/engines/direct3d/evas_engine.h new file mode 100644 index 0000000..da1ebff --- /dev/null +++ b/libraries/evas/src/modules/engines/direct3d/evas_engine.h | |||
@@ -0,0 +1,125 @@ | |||
1 | #ifndef __EVAS_ENGINE_H__ | ||
2 | #define __EVAS_ENGINE_H__ | ||
3 | |||
4 | |||
5 | #define WIN32_LEAN_AND_MEAN | ||
6 | #include <windows.h> | ||
7 | #undef WIN32_LEAN_AND_MEAN | ||
8 | #include <d3d9.h> | ||
9 | |||
10 | #ifdef __cplusplus | ||
11 | extern "C" { | ||
12 | #endif | ||
13 | |||
14 | #define EVAS_INLINE_ARRAY_H // We dont need that and it is buggy | ||
15 | |||
16 | #include "evas_common.h" | ||
17 | |||
18 | #ifdef __cplusplus | ||
19 | } | ||
20 | #endif | ||
21 | |||
22 | |||
23 | //#define ENABLE_LOG_PRINTF | ||
24 | |||
25 | extern int _evas_engine_direct3d_log_dom ; | ||
26 | #ifdef ERR | ||
27 | # undef ERR | ||
28 | #endif | ||
29 | #define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_direct3d_log_dom, __VA_ARGS__) | ||
30 | |||
31 | #ifdef DBG | ||
32 | # undef DBG | ||
33 | #endif | ||
34 | #define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_direct3d_log_dom, __VA_ARGS__) | ||
35 | |||
36 | #ifdef INF | ||
37 | # undef INF | ||
38 | #endif | ||
39 | #define INF(...) EINA_LOG_DOM_INFO(_evas_engine_direct3d_log_dom, __VA_ARGS__) | ||
40 | |||
41 | #ifdef WRN | ||
42 | # undef WRN | ||
43 | #endif | ||
44 | #define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_direct3d_log_dom, __VA_ARGS__) | ||
45 | |||
46 | #ifdef CRIT | ||
47 | # undef CRIT | ||
48 | #endif | ||
49 | #define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_direct3d_log_dom, __VA_ARGS__) | ||
50 | |||
51 | #ifdef ENABLE_LOG_PRINTF | ||
52 | #define Log(str, ...) INF("D3D "str, __VA_ARGS__) | ||
53 | #else | ||
54 | #define Log(str, ...) | ||
55 | #endif | ||
56 | |||
57 | typedef void * Direct3DDeviceHandler; | ||
58 | typedef void * Direct3DImageHandler; | ||
59 | typedef void * Direct3DFontGlyphHandler; | ||
60 | |||
61 | |||
62 | #ifdef __cplusplus | ||
63 | extern "C" { | ||
64 | #endif | ||
65 | |||
66 | // Main engine functions | ||
67 | |||
68 | Direct3DDeviceHandler evas_direct3d_init(HWND window, int depth, int fullscreen); | ||
69 | void evas_direct3d_free(Direct3DDeviceHandler d3d); | ||
70 | void evas_direct3d_render_all(Direct3DDeviceHandler d3d); | ||
71 | void evas_direct3d_resize(Direct3DDeviceHandler d3d, int width, int height); | ||
72 | void evas_direct3d_set_fullscreen(Direct3DDeviceHandler d3d, | ||
73 | int width, int height, int fullscreen); | ||
74 | void evas_direct3d_set_layered(Direct3DDeviceHandler d3d, int layered, | ||
75 | int mask_width, int mask_height, unsigned char *mask); | ||
76 | |||
77 | |||
78 | // Context manipulations | ||
79 | |||
80 | void evas_direct3d_context_color_set(Direct3DDeviceHandler d3d, int r, int g, int b, int a); | ||
81 | void evas_direct3d_context_set_multiplier(Direct3DDeviceHandler d3d, int r, int g, int b, int a); | ||
82 | |||
83 | // Simple objects | ||
84 | |||
85 | void evas_direct3d_line_draw(Direct3DDeviceHandler d3d, int x1, int y1, int x2, int y2); | ||
86 | void evas_direct3d_rectangle_draw(Direct3DDeviceHandler d3d, int x, int y, int w, int h); | ||
87 | |||
88 | // Images | ||
89 | |||
90 | Direct3DImageHandler evas_direct3d_image_load(Direct3DDeviceHandler d3d, | ||
91 | const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo); | ||
92 | Direct3DImageHandler evas_direct3d_image_new_from_data(Direct3DDeviceHandler d3d, | ||
93 | int w, int h, DWORD *image_data, int alpha, int cspace); | ||
94 | Direct3DImageHandler evas_direct3d_image_new_from_copied_data(Direct3DDeviceHandler d3d, | ||
95 | int w, int h, DWORD *image_data, int alpha, int cspace); | ||
96 | void evas_direct3d_image_free(Direct3DDeviceHandler d3d, Direct3DImageHandler image); | ||
97 | void evas_direct3d_image_data_put(Direct3DDeviceHandler d3d, Direct3DImageHandler image, | ||
98 | DWORD *image_data); | ||
99 | void evas_direct3d_image_data_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image, | ||
100 | int to_write, DATA32 **image_data); | ||
101 | void evas_direct3d_image_draw(Direct3DDeviceHandler d3d, Direct3DImageHandler image, | ||
102 | int src_x, int src_y, int src_w, int src_h, | ||
103 | int dst_x, int dst_y, int dst_w, int dst_h, int smooth); | ||
104 | void evas_direct3d_image_size_get(Direct3DImageHandler image, int *w, int *h); | ||
105 | void evas_direct3d_image_border_set(Direct3DDeviceHandler d3d, Direct3DImageHandler image, | ||
106 | int l, int r, int t, int b); | ||
107 | void evas_direct3d_image_border_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image, | ||
108 | int *l, int *r, int *t, int *b); | ||
109 | |||
110 | // Fonts | ||
111 | |||
112 | Direct3DFontGlyphHandler evas_direct3d_font_texture_new(Direct3DDeviceHandler d3d, | ||
113 | RGBA_Font_Glyph *fg); | ||
114 | void evas_direct3d_font_texture_free(Direct3DFontGlyphHandler ft); | ||
115 | void evas_direct3d_font_texture_draw(Direct3DDeviceHandler d3d, void *dest, void *context, | ||
116 | RGBA_Font_Glyph *fg, int x, int y); | ||
117 | void evas_direct3d_select_or_create_font(Direct3DDeviceHandler d3d, void *font); | ||
118 | void evas_direct3d_font_free(Direct3DDeviceHandler d3d, void *font); | ||
119 | |||
120 | #ifdef __cplusplus | ||
121 | } | ||
122 | #endif | ||
123 | |||
124 | |||
125 | #endif /* __EVAS_ENGINE_H__ */ | ||