Sophie

Sophie

distrib > PLD > ac > amd64 > media > dist > by-pkgid > d1f0df1429f50a2dc3896b450131d5eb > files > 100

SDLmm-devel-0.1.8-6.amd64.rpm

<!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>sdlmm_basesurface.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>sdlmm_basesurface.h</h1><a href="sdlmm__basesurface_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * SDmm - a C++ wrapper for SDL and related libraries</font>
00003 <font class="comment"> * Copyright © 2001 David Hedbor &lt;david@hedbor.org&gt;</font>
00004 <font class="comment"> * </font>
00005 <font class="comment"> * This program is free software; you can redistribute it and/or</font>
00006 <font class="comment"> * modify it under the terms of the GNU General Public License as</font>
00007 <font class="comment"> * published by the Free Software Foundation; either version 2 of the</font>
00008 <font class="comment"> * License, or (at your option) any later version.</font>
00009 <font class="comment"> * </font>
00010 <font class="comment"> * This program is distributed in the hope that it will be useful, but</font>
00011 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00012 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</font>
00013 <font class="comment"> * General Public License for more details.</font>
00014 <font class="comment"> * </font>
00015 <font class="comment"> * You should have received a copy of the GNU General Public License</font>
00016 <font class="comment"> * along with this program; if not, write to the Free Software</font>
00017 <font class="comment"> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</font>
00018 <font class="comment"> *</font>
00019 <font class="comment"> */</font>
00020 
00021 
00022 <font class="preprocessor">#ifndef SDLMM_BASESURFACE_H</font>
00023 <font class="preprocessor"></font><font class="preprocessor">#define SDLMM_BASESURFACE_H</font>
00024 <font class="preprocessor"></font><font class="preprocessor">#include "<a class="code" href="sdlmm__config_8h.html">sdlmm_config.h</a>"</font>
00025 <font class="preprocessor">#include "<a class="code" href="sdlmm__spoint_8h.html">sdlmm_spoint.h</a>"</font>
00026 <font class="preprocessor">#include "<a class="code" href="sdlmm__srect_8h.html">sdlmm_srect.h</a>"</font>
00027 <font class="preprocessor">#include "<a class="code" href="sdlmm__color_8h.html">sdlmm_color.h</a>"</font>
00028 <font class="preprocessor">#include "<a class="code" href="sdlmm__pixelformat_8h.html">sdlmm_pixelformat.h</a>"</font>
00029 <font class="preprocessor">#include &lt;string&gt;</font>
00030 
00031 <font class="keyword">namespace </font>SDLmm {
00033 
<a name="l00043"></a><a class="code" href="classSDLmm_1_1BaseSurface.html">00043</a>   <font class="keyword">class </font>BaseSurface {
00044 
00045   <font class="keyword">protected</font>:
<a name="l00047"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#n0">00047</a>     SDL_Surface *me;
<a name="l00048"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#b0">00048</a>     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#b0">SetSurface</a>(SDL_Surface *surface)<font class="keyword"> </font>{
00049       <font class="keywordflow">if</font>(me) {
00050         SDL_FreeSurface(me);
00051       }
00052       me = surface;
00053     }
00054 
00056 
<a name="l00063"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#b1">00063</a>     <font class="keyword">explicit</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#b1">BaseSurface</a>(SDL_Surface *surface)
00064       : me(surface) {
00065     }
00066     
<a name="l00067"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#b2">00067</a>     <a class="code" href="classSDLmm_1_1BaseSurface.html#b1">BaseSurface</a>(<font class="keyword">const</font> BaseSurface&amp; other)
00068       : me(other.me) {
00069     }
00070     
<a name="l00071"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#b3">00071</a>     BaseSurface &amp;<a class="code" href="classSDLmm_1_1BaseSurface.html#b3">operator=</a>(<font class="keyword">const</font> BaseSurface&amp; other)<font class="keyword"> </font>{
00072       <font class="keywordflow">if</font>(<font class="keyword">this</font> != &amp;other)
00073         <a class="code" href="classSDLmm_1_1BaseSurface.html#b0">SetSurface</a>(other.me);
00074       <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00075     }
00076     
00077   <font class="keyword">public</font>:
00078 
<a name="l00080"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a0">00080</a>     <font class="keyword">virtual</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a0">~BaseSurface</a>()<font class="keyword"> </font>{
00081       <font class="keywordflow">if</font>(me) {
00082         SDL_FreeSurface(me);
00083       }
00084     }
00085     
<a name="l00086"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a1">00086</a>     SDL_Surface *<a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()<font class="keyword"> </font>{
00087       <a class="code" href="sdlmm__config_8h.html#a0">ASSERT</a>(me);
00088       <font class="keywordflow">return</font> me;
00089     }
00090 
<a name="l00091"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a2">00091</a>     <font class="keyword">const</font> SDL_Surface *<a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()<font class="keyword"> const </font>{
00092       <a class="code" href="sdlmm__config_8h.html#a0">ASSERT</a>(me);
00093       <font class="keywordflow">return</font> me;
00094     }
00095 
00098     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a3">Lock</a>();
00099 
00101     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a4">Unlock</a>();
00102     
00104 
00105 
00106 
<a name="l00107"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a5">00107</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a5">valid</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> me != 0; }
00108 
<a name="l00110"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a6">00110</a>     Uint32 <a class="code" href="classSDLmm_1_1BaseSurface.html#a6">flags</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;flags; }                   
00111 
<a name="l00113"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a7">00113</a>     <font class="keyword">const</font> PixelFormat <a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> PixelFormat(<a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;format); }
<a name="l00114"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a8">00114</a>     PixelFormat <a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>()<font class="keyword"> </font>{ <font class="keywordflow">return</font> PixelFormat(<a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;format); }
00115 
<a name="l00117"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a9">00117</a>     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a9">w</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;w; }                      
00118 
<a name="l00120"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a10">00120</a>     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a10">h</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;h; }                      
00121 
<a name="l00123"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a11">00123</a>     Uint16 <a class="code" href="classSDLmm_1_1BaseSurface.html#a11">pitch</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;pitch; }                   
00124 
<a name="l00126"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a12">00126</a>     <font class="keyword">const</font> SRect <a class="code" href="classSDLmm_1_1BaseSurface.html#a12">clip_rect</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> SRect(<a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;clip_rect); } 
00127 
00129 
<a name="l00132"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a13">00132</a>     <font class="keywordtype">void</font> *<a class="code" href="classSDLmm_1_1BaseSurface.html#a13">pixels</a>()<font class="keyword"> </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;pixels; }
00133 
00135 
<a name="l00138"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a14">00138</a>     <font class="keyword">const</font> <font class="keywordtype">void</font> *<a class="code" href="classSDLmm_1_1BaseSurface.html#a13">pixels</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;pixels; }
00139 
<a name="l00141"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a15">00141</a>     <font class="keyword">struct </font>private_hwdata *hwdata() const { <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a1">GetSurface</a>()-&gt;hwdata; }
00143 
00145 
00148     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a16">SetPixel</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y, Color color);
00149 
00151 
00155     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a17">SetPixel1</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y, Color color);
00156 
00158 
00162     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a18">SetPixel2</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y, Color color);
00163 
00165 
00169     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a19">SetPixel3</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y, Color color);
00170 
00172 
00176     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a20">SetPixel4</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y, Color color);
00177 
00179 
<a name="l00182"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a21">00182</a>     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a16">SetPixel</a>(<font class="keyword">const</font> SRect&amp; point, Color color)<font class="keyword"> </font>{ <a class="code" href="classSDLmm_1_1BaseSurface.html#a16">SetPixel</a>(point.x, point.y, color); }
00183 
00185 
00188     Color <a class="code" href="classSDLmm_1_1BaseSurface.html#a22">GetPixel</a>(<font class="keywordtype">int</font> x, <font class="keywordtype">int</font> y) <font class="keyword">const</font>;
00189 
00191 
<a name="l00194"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a23">00194</a>     Color <a class="code" href="classSDLmm_1_1BaseSurface.html#a22">GetPixel</a>(<font class="keyword">const</font> SRect&amp; point)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a22">GetPixel</a>(point.x, point.y); }
00195 
00198 
00207     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a24">SetColorKey</a>(Uint32 flag, Color key);
00208       
00210 
00232     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a25">SetAlpha</a>(Uint32 flag, Uint8 alpha);
00233 
00235 
00236 
00237 
00241     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a26">ResetClipRect</a>();
00242 
00244 
00255     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a27">SetClipRect</a>(<font class="keyword">const</font> <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; rect);
00256     
00258 
00267     <font class="keywordtype">void</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a28">GetClipRect</a>(<a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; rect) <font class="keyword">const</font>;
00269 
00271 
00272 
00273 
00287     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src);
00288 
00291 
00309     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect);
00310 
00313 
<a name="l00330"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a31">00330</a>     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <font class="keyword">const</font> SPoint&amp; dstpoint, <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect)<font class="keyword"> </font>{ dstrect.x = dstpoint.x; dstrect.y = dstpoint.y; <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(src, dstrect); }
00331 
00334 
00349     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <font class="keyword">const</font> SPoint&amp; dstpoint);
00350 
00353 
00374     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <font class="keyword">const</font> <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; srcrect, <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect);
00375 
00378 
<a name="l00398"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a34">00398</a>     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <font class="keyword">const</font> <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; srcrect, <font class="keyword">const</font> SPoint&amp; dstpoint, <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect)<font class="keyword"> </font>{ dstrect.x = dstpoint.x; dstrect.y = dstpoint.y; <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(src, srcrect, dstrect); }
00399 
00402 
00419     <font class="keywordtype">int</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a29">Blit</a>(<font class="keyword">const</font> BaseSurface&amp; src, <font class="keyword">const</font> <a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; srcrect, <font class="keyword">const</font> SPoint&amp; dstpoint);
00420 
00422 
00428     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a36">Fill</a>(Color color);
00429 
00431 
<a name="l00437"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a37">00437</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a36">Fill</a>(Uint8 r, Uint8 g, Uint8 b)<font class="keyword"> </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a36">Fill</a>(<a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>().MapRGB(r, g, b)); }
00438 
00440 
<a name="l00447"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a38">00447</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a36">Fill</a>(Uint8 r, Uint8 g, Uint8 b, Uint8 a)<font class="keyword"> </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a36">Fill</a>(<a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>().MapRGBA(r, g, b, a)); }
00448 
00450 
00459     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a39">FillRect</a>(<a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect, Color color);
00460 
00462 
<a name="l00471"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a40">00471</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a39">FillRect</a>(<a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect, Uint8 r, Uint8 g, Uint8 b)<font class="keyword"> </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a39">FillRect</a>(dstrect, <a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>().MapRGB(r, g, b)); }
00472 
00474 
<a name="l00484"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a41">00484</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a39">FillRect</a>(<a class="code" href="structSDL__Rect.html">SDL_Rect</a>&amp; dstrect, Uint8 r, Uint8 g, Uint8 b, Uint8 a)<font class="keyword"> </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a39">FillRect</a>(dstrect, <a class="code" href="classSDLmm_1_1BaseSurface.html#a7">GetPixelFormat</a>().MapRGBA(r, g, b, a)); }
00485 
00487 
00489 
00508     <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a42">SetDisplayFormat</a>() = 0;
00509 
00511 
00530     <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a43">SetDisplayFormatAlpha</a>() = 0;
00531 
00533 
00537     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a44">SaveBMP</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *file) <font class="keyword">const</font>;
00538     
00540 
<a name="l00544"></a><a class="code" href="classSDLmm_1_1BaseSurface.html#a45">00544</a>     <font class="keywordtype">bool</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a44">SaveBMP</a>(<font class="keyword">const</font> std::string&amp; file)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classSDLmm_1_1BaseSurface.html#a44">SaveBMP</a>(file.c_str()); }
00545    
00546   };
00547 }
00548 
00549 <font class="preprocessor">#endif // SDLMM_BASESURFACE_H</font>
00550 <font class="preprocessor"></font>
</pre></div><hr>
<table cellspacing=10 cellpadding=0 border=0 width=100%>
<tr valign=middle><td><font size=-1>Documentation automatically generated by <a
href="http://www.stack.nl/~dimitri/doxygen/"><img border=0 align=center src="doxygen.gif" alt="doxygen"></a> written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.</font></td>
<td align=right><font size=-1>Project hosted at <br><a href="http://sourceforge.net"><img align=middle src="http://sourceforge.net/sflogo.php?group_id=25445&type=1" width="88" height="31" border="0"  alt="Hosted by SourceForge"></a></font></td></tr></table>