File: pldirectfbbmp_8h-source.html

package info (click to toggle)
paintlib 2.6.2-8
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,900 kB
  • ctags: 3,875
  • sloc: cpp: 25,209; sh: 10,600; ansic: 1,891; makefile: 119
file content (206 lines) | stat: -rw-r--r-- 13,169 bytes parent folder | download | duplicates (2)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>paintlib: pldirectfbbmp.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a></div>
<h1>pldirectfbbmp.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">/--------------------------------------------------------------------</span>
00003 <span class="comment">|</span>
00004 <span class="comment">|      $Id: pldirectfbbmp_8h-source.html,v 1.4 2004/09/15 15:26:29 uzadow Exp $</span>
00005 <span class="comment">|</span>
00006 <span class="comment">|      Copyright (c) 1996-2003 Ulrich von Zadow</span>
00007 <span class="comment">|</span>
00008 <span class="comment">\--------------------------------------------------------------------</span>
00009 <span class="comment">*/</span>
00010 
00011 <span class="preprocessor">#ifndef INCL_PLDIRECTFBBMP</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define INCL_PLDIRECTFBBMP</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#ifndef INCL_PLBITMAP</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#include "plbitmap.h"</span>
00016 <span class="preprocessor">#endif</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include &lt;directfb.h&gt;</span>
00019 <span class="comment"></span>
00020 <span class="comment">//! Manipulates bitmaps stored as DirectFB surfaces.</span>
00021 <span class="comment">//! 8, 24 and 32 bpp (pixel formats DSPF_ARGB, DSPF_RGB32, DSPF_RGB24, DSPF_A8).</span>
00022 <span class="comment">//! The surfaces used are system memory surfaces.  </span>
<a name="l00023"></a><a class="code" href="classPLDirectFBBmp.html">00023</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> : <span class="keyword">public</span> <a class="code" href="classPLBmp.html">PLBmp</a>
00024 {
00025 
00026 <span class="keyword">public</span>:<span class="comment"></span>
00027 <span class="comment">  //! Sets a pointer to the main DirectFB interface. This needs to be done </span>
00028 <span class="comment">  //! before any PLDirectFBBmps get allocated.</span>
00029 <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPLDirectFBBmp.html#e0">SetDirectFB</a>
00030     ( IDirectFB * pDirectFB
00031     );
00032 <span class="comment"></span>
00033 <span class="comment">  //! Creates an empty bitmap object.</span>
00034 <span class="comment">  //! The Create() function allocates a DirectFB system memory surface for this bitmap.</span>
00035 <span class="comment">  //! Note that only system memory surfaces are supported at the moment.</span>
00036 <span class="comment"></span>  <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a>
00037     ();
00038 <span class="comment"></span>
00039 <span class="comment">  //! Destroys the bitmap.</span>
00040 <span class="comment"></span>  <span class="keyword">virtual</span> ~<a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a>
00041     ();
00042 <span class="comment"></span>
00043 <span class="comment">  //! Copy constructor</span>
00044 <span class="comment"></span>  <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a>
00045     ( <span class="keyword">const</span> <a class="code" href="classPLBmp.html">PLBmp</a> &amp;Orig
00046     );
00047 <span class="comment"></span>
00048 <span class="comment">  //! Copy constructor</span>
00049 <span class="comment"></span>  <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a>
00050     ( <span class="keyword">const</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;Orig
00051     );
00052 
00053   <span class="keyword">virtual</span> <span class="keywordtype">void</span> CreateFromSurface
00054     ( IDirectFBSurface * pSurface,
00055       <span class="keywordtype">bool</span> bOwnsSurface
00056     );
00057 
00058 <span class="preprocessor">#ifdef _DEBUG</span>
00059 <span class="preprocessor"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> AssertValid
00060     () <span class="keyword">const</span>;    <span class="comment">// Tests internal object state</span>
00061 <span class="preprocessor">#endif</span>
00062 <span class="preprocessor"></span><span class="comment"></span>
00063 <span class="comment">  //! Assignment operator.</span>
00064 <span class="comment"></span>  <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;<span class="keyword">operator</span>=
00065     ( <span class="keyword">const</span> <a class="code" href="classPLBmp.html">PLBmp</a> &amp;Orig
00066     );
00067 <span class="comment"></span>
00068 <span class="comment">  //! Assignment operator.</span>
00069 <span class="comment"></span>  <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;<span class="keyword">operator</span>=
00070     ( <span class="keyword">const</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;Orig
00071     );
00072 
00073   <span class="comment">// PLDirectFBBmp information</span>
00074 <span class="comment"></span>
00075 <span class="comment">  //! Returns a pointer to the internal DirectFB surface. The surface is still</span>
00076 <span class="comment">  //! owned by the bitmap object.</span>
00077 <span class="comment">  //! Using this pointer, you can bring DirectFB and paintlib data out of sync</span>
00078 <span class="comment">  //! easily. Handle with care.</span>
00079 <span class="comment"></span>  IDirectFBSurface * <a class="code" href="classPLDirectFBBmp.html#a7">GetSurface</a>
00080     ();
00081 <span class="comment"></span>
00082 <span class="comment">  //! Returns the amount of memory used by the object.</span>
00083 <span class="comment"></span>  <span class="keywordtype">long</span> <a class="code" href="classPLDirectFBBmp.html#a8">GetMemUsed</a>
00084     ();
00085 <span class="comment"></span>
00086 <span class="comment">  //! Returns number of bytes used per line.</span>
00087 <span class="comment"></span>  <span class="keywordtype">long</span> <a class="code" href="classPLDirectFBBmp.html#a9">GetBytesPerLine</a>
00088     ();
00089 
00090   <span class="comment">// Static functions</span>
00091 <span class="comment"></span>
00092 <span class="comment">  //! Returns memory needed by a bitmap with the specified attributes.</span>
00093 <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classPLDirectFBBmp.html#e1">GetMemNeeded</a>
00094     ( PLLONG width,
00095       PLLONG height,
00096       PLWORD BitsPerPixel
00097     );
00098 <span class="comment"></span>
00099 <span class="comment">  //! Returns memory needed by bitmap bits.</span>
00100 <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classPLDirectFBBmp.html#e2">GetBitsMemNeeded</a>
00101     ( PLLONG width,
00102       PLLONG height,
00103       PLWORD BitsPerPixel
00104     );
00105 
00106 
00107 <span class="keyword">protected</span>:
00108   <span class="comment">// Local functions</span>
00109 
00110   <span class="comment">// Create a new bitmap with uninitialized bits. Assumes no memory</span>
00111   <span class="comment">// is allocated yet.</span>
00112   <span class="keyword">virtual</span> <span class="keywordtype">void</span> internalCreate
00113     ( PLLONG Width,
00114       PLLONG Height,
00115       PLWORD BitsPerPixel,
00116       <span class="keywordtype">bool</span> bAlphaChannel,
00117       <span class="keywordtype">bool</span> bIsGreyscale
00118     );
00119 
00120   <span class="comment">// Deletes memory allocated by member variables.</span>
00121   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPLDirectFBBmp.html#b1">freeMembers</a>
00122     ();
00123 
00124   <span class="comment">// Initializes internal table of line addresses.</span>
00125   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPLDirectFBBmp.html#b2">initLineArray</a>
00126     ();
00127 
00128 <span class="keyword">private</span>: 
00129   <span class="keyword">static</span> IDirectFB * s_pDirectFB; 
00130   IDirectFBSurface * m_pSurface;        <span class="comment">// Pointer to the bits.</span>
00131   <span class="keywordtype">bool</span> m_bOwnsSurface;
00132 };
00133 
00134 <span class="comment">// Note that _both_ these copy constructors are needed. If only the</span>
00135 <span class="comment">// second one is there, MSVC 6.0 generates a default copy</span>
00136 <span class="comment">// constructor anyway :-(.</span>
00137 <span class="keyword">inline</span> <a class="code" href="classPLDirectFBBmp.html#a0">PLDirectFBBmp::PLDirectFBBmp</a>
<a name="l00138"></a><a class="code" href="classPLDirectFBBmp.html#a3">00138</a>     ( <span class="keyword">const</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;Orig
00139     )
00140     : <a class="code" href="classPLBmp.html">PLBmp</a> ()
00141 {
00142   internalCopy (Orig);
00143 }
00144 
00145 <span class="keyword">inline</span> <a class="code" href="classPLDirectFBBmp.html#a0">PLDirectFBBmp::PLDirectFBBmp</a>
<a name="l00146"></a><a class="code" href="classPLDirectFBBmp.html#a2">00146</a>     ( <span class="keyword">const</span> <a class="code" href="classPLBmp.html">PLBmp</a> &amp;Orig
00147     )
00148     : <a class="code" href="classPLBmp.html">PLBmp</a> ()
00149 {
00150   internalCopy (Orig);
00151 }
00152 
00153 <span class="keyword">inline</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp; PLDirectFBBmp::operator=
<a name="l00154"></a><a class="code" href="classPLDirectFBBmp.html#a5">00154</a>     ( <span class="keyword">const</span> <a class="code" href="classPLBmp.html">PLBmp</a> &amp;Orig
00155     )
00156 {
00157   <a class="code" href="classPLBmp.html#a2">PLBmp::operator=</a>(Orig);
00158   <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00159 }
00160 
00161 <span class="keyword">inline</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp; PLDirectFBBmp::operator=
<a name="l00162"></a><a class="code" href="classPLDirectFBBmp.html#a6">00162</a>     ( <span class="keyword">const</span> <a class="code" href="classPLDirectFBBmp.html">PLDirectFBBmp</a> &amp;Orig
00163     )
00164 {
00165   <a class="code" href="classPLBmp.html#a2">PLBmp::operator=</a>(Orig);
00166   <span class="keywordflow">return</span> *<span class="keyword">this</span>;
00167 }
00168 
00169 
00170 <span class="preprocessor">#endif</span>
00171 <span class="preprocessor"></span><span class="comment">/*</span>
00172 <span class="comment">/--------------------------------------------------------------------</span>
00173 <span class="comment">|</span>
00174 <span class="comment">|      $Log: pldirectfbbmp_8h-source.html,v $
00174 <span class="comment">|      Revision 1.4  2004/09/15 15:26:29  uzadow
00174 <span class="comment">|      Linux compatibility changes, doc update.
00174 <span class="comment">|</span>
00175 <span class="comment">|      Revision 1.4  2004/06/12 14:52:46  uzadow</span>
00176 <span class="comment">|      Added CreateFromSurface function.</span>
00177 <span class="comment">|</span>
00178 <span class="comment">|      Revision 1.3  2004/06/06 12:56:38  uzadow</span>
00179 <span class="comment">|      Doxygenified documentation.</span>
00180 <span class="comment">|</span>
00181 <span class="comment">|      Revision 1.2  2004/04/16 20:14:41  uzadow</span>
00182 <span class="comment">|      Changes to make cdoc work.</span>
00183 <span class="comment">|</span>
00184 <span class="comment">|      Revision 1.1  2003/07/27 13:50:48  uzadow</span>
00185 <span class="comment">|      Added support for DirectFB surfaces.</span>
00186 <span class="comment">|</span>
00187 <span class="comment">|</span>
00188 <span class="comment">|</span>
00189 <span class="comment">\--------------------------------------------------------------------</span>
00190 <span class="comment">*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Sep 13 16:16:40 2004 for paintlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.2 </small></address>
</body>
</html>