DRAWSCR.H
[目次 | マクロ]
1|/***********************************************************************
2|* 1. <<< 描画対象画面の抽象 (DrawScr) >>>
3|************************************************************************/
4|
5|#ifndef __DRAWSCR_H
6|#define __DRAWSCR_H
7|
8|/*----------------------------------------------------------------------
9|[Module Property]
10|name = DrawScr
11|title = 描画抽象画面
12|category = グラフィック
13|src =
14|depend = Inf
15|priority =
16|accord =
17|----------------------------------------------------------------------*/
18|
19|#ifndef USES_PRIORITY_HEADER
20|/*[START_OF_PRIORITY_HEADER]*/
21|
22|#define USES_DRAWSCR
23|INF_TYPEDEF( _DrawScr, DrawScr );
24|
25|/*[END_OF_PRIORITY_HEADER]*/
26|#endif /* USES_PRIORITY_HEADER */
27|
28|
29|
30|/*-------------------------------------------------------------------*/
31|/*--- Interface Area ------------------------------------------------*/
32|/*-------------------------------------------------------------------*/
33|
34|/************************************************************************
35|* 2. <<< 描画画面(インターフェイス・クラス) [DrawScr] >>>
36|*【補足】
37|*・Screen, Screen98, DScreen クラスの共通のインターフェイスです。
38|*・Draw クラスがこのインターフェイスを通して描画します。
39|*************************************************************************/
40|/* インターフェイス型定義 */
41|INF_DECLARE_START( _DrawScr, DrawScr )
42|INF_DECLARE_METHOD_0( int, getWidth, DrawScr )
43|INF_DECLARE_METHOD_0( int, getHeight, DrawScr )
44|INF_DECLARE_METHOD_2( int, getExAdr, DrawScr,int,int )
45|INF_DECLARE_METHOD_3( void, getExVectors, DrawScr,int,unsigned*,unsigned* )
46|INF_DECLARE_METHOD_1( void, clear, DrawScr,int )
47|INF_DECLARE_METHOD_3( void, pset, DrawScr,int,int,int )
48|INF_DECLARE_METHOD_2( void, exPset, DrawScr,int,int )
49|INF_DECLARE_METHOD_3( void, psetXor, DrawScr,int,int,int )
50|#ifdef USES_MASK
51|INF_DECLARE_METHOD_5( void, psets, DrawScr,int,int,unsigned char*,int,int )
52|#endif
53|INF_DECLARE_METHOD_0( void, xorPaint, DrawScr )
54|#ifdef USES_MASK
55|INF_DECLARE_METHOD_4( void, flushTo2, DrawScr,DrawScr,Mask_A*,int,int )
56|#ifdef USES_SCREEN
57|INF_DECLARE_METHOD_4( void, flushFromScreen2, DrawScr,Screen*,Mask_A*,int,int )
58|#endif
59|#ifdef USES_DSCREEN
60|INF_DECLARE_METHOD_4( void, flushFromDScreen2, DrawScr,DScreen*,Mask_A*,int,int )
61|#endif
62|#endif /* USES_MASK */
63|INF_DECLARE_END();
64|
65|
66|/*** 属性 ***/
67|int DrawScr_getWidth( DrawScr );
68|int DrawScr_getHeight( DrawScr );
69|
70|/*** 基本的な処理をする ***/
71|void DrawScr_clear( DrawScr, int color );
72|void DrawScr_pset( DrawScr , int x, int y, int color );
73|#ifdef USES_MASK
74|void DrawScr_psets( DrawScr , int x, int y, unsigned char*, int,int );
75|#endif
76|void DrawScr_psetXor( DrawScr, int x, int y, int color );
77|void DrawScr_xorPaint( DrawScr );
78|int DrawScr_getExAdr( DrawScr,int,int );
79|void DrawScr_getExVectors( DrawScr,int,unsigned*,unsigned* );
80|
81|/*** コピーする ***/
82|void DrawScr_flushTo( DrawScr, DrawScr target );
83|#ifdef USES_MASK
84|void DrawScr_flushTo2( DrawScr, DrawScr target,
85| Mask_A* mask, int baseX, int baseY );
86|#ifdef USES_SCREEN
87|void DrawScr_flushFromScreen( DrawScr, Screen* work );
88|void DrawScr_flushFromScreen2( DrawScr, Screen* work,
89| Mask_A* mask, int baseX, int baseY );
90|#endif /* USES_SCREEN */
91|#ifdef USES_DSCREEN
92|void DrawScr_flushFromDScreen( DrawScr, DScreen* work );
93|void DrawScr_flushFromDScreen2( DrawScr, DScreen* work,
94| Mask_A* mask, int baseX, int baseY );
95|#endif /* USES_DSCREEN */
96|#endif /* USES_MASK */
97|
98|
99|/*-------------------------------------------------------------------*/
100|/*--- Mapping Area --------------------------------------------------*/
101|/*-------------------------------------------------------------------*/
102|
103|/************************************************************************
104|* 3. <<< DrawScr クラスのインターフェイス・マッピング >>>
105|* 4. <<< [DrawScr_getWidth()],[DrawScr_getHeight()] >>>
106|* 5. <<< [DrawScr_clear()] >>>
107|* 6. <<< [DrawScr_pset()],[DrawScr_psetXor()],[DrawScr_psets()] >>>
108|* 7. <<< [DrawScr_xorPaint()] >>>
109|* 8. <<< [DrawScr_flushTo()],[DrawScr_flushTo2()] >>>
110|* 9. <<< [DrawScr_flushFromScreen()],[DrawScr_flushFromScreen2()] >>>
111|* 10. <<< [DrawScr_flushFromDScreen()],[DrawScr_flushFromDScreen2()] >>>
112|*************************************************************************/
113|/* インターフェイス・マクロ定義 */
114|#ifdef NDEBUG
115|#define DrawScr_getWidth(t) INF_MACRO_0( DrawScr, getWidth, int, DrawScr_getWidth, DrawScr,t )
116|#define DrawScr_getHeight(t) INF_MACRO_0( DrawScr, getHeight, int, DrawScr_getHeight, DrawScr,t )
117|#define DrawScr_getExAdr(t,a,b) INF_MACRO_2( DrawScr, getExAdr, int, DrawScr_getExAdr, DrawScr,int,int,t,a,b )
118|#define DrawScr_getExVectors(t,a,b,c) INF_MACRO_3( DrawScr, getExVectors, void, DrawScr_getExVectors, DrawScr,int,unsigned*,unsigned*,t,a,b,c )
119|#define DrawScr_clear(t,a) INF_MACRO_1( DrawScr, clear, void, DrawScr_clear, DrawScr,int,t,a )
120|#define DrawScr_pset(t,a,b,c) INF_MACRO_3( DrawScr, pset, void, DrawScr_pset, DrawScr,int,int,int,t,a,b,c )
121|#define DrawScr_exPset(t,a,b) INF_MACRO_2( DrawScr, exPset, void, DrawScr_exPset, DrawScr,int,int,t,a,b )
122|#define DrawScr_psetXor(t,a,b,c) INF_MACRO_3( DrawScr, psetXor, void, DrawScr_psetXor, DrawScr,int,int,int,t,a,b,c )
123|#ifdef USES_MASK
124|#define DrawScr_psets(t,a,b,c,d,e) INF_MACRO_5( DrawScr, psets, void, DrawScr_psets, DrawScr,int,int,unsigned char*,int,int,t,a,b,c,d,e )
125|#endif
126|#define DrawScr_xorPaint(t) INF_MACRO_0( DrawScr, xorPaint, void, DrawScr_xorPaint, DrawScr,t )
127|#ifdef USES_MASK
128|#define DrawScr_flushTo2(t,a,b,c,d) INF_MACRO_4( DrawScr, flushTo2, void, DrawScr_flushTo2, DrawScr,DrawScr,int,int,int,t,a,b,c,d )
129|#ifdef USES_SCREEN
130|#define DrawScr_flushFromScreen2(t,a,b,c,d) INF_MACRO_4( DrawScr, flushFromScreen2, void, DrawScr_flushFromScreen2, DrawScr,Screen*,int,int,int,t,a,b,c,d )
131|#endif
132|#ifdef USES_DSCREEN
133|#define DrawScr_flushFromDScreen2(t,a,b,c,d) INF_MACRO_4( DrawScr, flushFromDScreen2, void, DrawScr_flushFromDScreen2, DrawScr,DScreen*,int,int,int,t,a,b,c,d )
134|#endif
135|#endif /* USES_MASK */
136|#endif /* NDEBUG */
137|
138|#define DrawScr_flushTo( this, to ) \
139| DrawScr_flushTo2( (this).obj, to, NULL,0,0 )
140|#define DrawScr_flushFromScreen( this, target ) \
141| DrawScr_flushFromScreen2( (this).obj, target, NULL,0,0 )
142|#define DrawScr_flushFromDScreen( this, target ) \
143| DrawScr_flushFromDScreen2( (this).obj, target, NULL,0,0 )
144|
145|#endif /* __DRAWSCR_H */
146|
147|