aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.h
blob: fe85e97ab2bbfe90322a1e56c2023119e98d31d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef __EVAS_ENGINE_H__
#define __EVAS_ENGINE_H__

#include <windows.h>
#include <ddraw.h>

#include "evas_common_soft16.h"

extern int _evas_engine_soft16_ddraw_log_dom ;
#ifdef ERR
# undef ERR
#endif
#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)

#ifdef DBG
# undef DBG
#endif
#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)

#ifdef INF
# undef INF
#endif
#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)

#ifdef WRN
# undef WRN
#endif
#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)

#ifdef CRIT
# undef CRIT
#endif
#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)

typedef struct _DDraw_Output_Buffer       DDraw_Output_Buffer;

struct _DDraw_Output_Buffer
{
   Soft16_Image *im;
  struct {
     HWND                window;
     LPDIRECTDRAW        object;
     LPDIRECTDRAWSURFACE surface_primary;
     LPDIRECTDRAWSURFACE surface_back;
     LPDIRECTDRAWSURFACE surface_source;
  } dd;
   void        *data;
   int          x;
   int          y;
   int          width;
   int          height;
   int          depth;
   int          pitch;
};

/****/

#ifdef __cplusplus
extern "C" {
#endif


DDraw_Output_Buffer *evas_software_ddraw_output_buffer_new        (HWND                window,
                                                                   LPDIRECTDRAW        object,
                                                                   LPDIRECTDRAWSURFACE surface_primary,
                                                                   LPDIRECTDRAWSURFACE surface_back,
                                                                   LPDIRECTDRAWSURFACE surface_source,
                                                                   int width,
                                                                   int height);
void                 evas_software_ddraw_output_buffer_free       (DDraw_Output_Buffer *ddob, int sync);
void                 evas_software_ddraw_output_buffer_paste      (DDraw_Output_Buffer *ddob);


void *evas_software_ddraw_lock(DDraw_Output_Buffer *ddob, int *ddraw_width, int *ddraw_height, int *ddraw_pitch, int *ddraw_depth);

void  evas_software_ddraw_unlock_and_flip(DDraw_Output_Buffer *ddob);

void  evas_software_ddraw_surface_resize(DDraw_Output_Buffer *ddob);


#ifdef __cplusplus
}
#endif

#endif /* __EVAS_ENGINE_H__ */