⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wg__painter_8cpp-source.html

📁 一个小巧的嵌入式图形系统wGUI, 可以用VC编译
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00223           <span class="keywordflow">switch</span> (<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>-&gt;format-&gt;BytesPerPixel)00224           {00225           <span class="keywordflow">case</span> 1: <span class="comment">// 8 bpp</span>00226                PixelColor = *reinterpret_cast&lt;Uint8*&gt;(PixelOffset);00227                <span class="keywordflow">break</span>;00228           <span class="keywordflow">case</span> 2: <span class="comment">// 16 bpp</span>00229                PixelColor = *reinterpret_cast&lt;Uint16*&gt;(PixelOffset);00230                <span class="keywordflow">break</span>;00231           <span class="keywordflow">case</span> 3: <span class="comment">// 24 bpp</span>00232           {00233                Uint8* pPixelDest = reinterpret_cast&lt;Uint8*&gt;(&amp;PixelColor);00234                Uint8* pPixelSource = reinterpret_cast&lt;Uint8*&gt;(PixelOffset);00235                *pPixelDest = *pPixelSource;00236                *(++pPixelDest) = *(++pPixelSource);00237                *(++pPixelDest) = *(++pPixelSource);00238                <span class="keywordflow">break</span>;00239           }00240           <span class="keywordflow">case</span> 4: <span class="comment">// 32 bpp</span>00241                PixelColor = *reinterpret_cast&lt;Uint32*&gt;(PixelOffset);00242                <span class="keywordflow">break</span>;00243           <span class="keywordflow">default</span>:00244                <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__SDL.html">Wg_Ex_SDL</a>(<span class="stringliteral">"CPainter::DrawPoint : Unrecognized BytesPerPixel."</span>));00245                <span class="keywordflow">break</span>;00246           }00247      }00248      <span class="keywordflow">return</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>(&amp;PixelColor, <a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>-&gt;format);00249 }00250 00251 <a name="l00252"></a><a class="code" href="classwGui_1_1CPainter.html#b0">00252</a> <span class="keywordtype">void</span> CPainter::LockSurface(<span class="keywordtype">void</span>)00253 {00254      <span class="keywordflow">if</span> (SDL_MUSTLOCK(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>))00255      {00256           <span class="keywordflow">if</span> (SDL_LockSurface(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>) &lt; 0)00257           {00258                SDL_Delay(10);00259                <span class="keywordflow">if</span> (SDL_LockSurface(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>) &lt; 0)00260                {00261                     <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__SDL.html">Wg_Ex_SDL</a>(<span class="stringliteral">"Unable to lock surface."</span>));00262                }00263           }00264      }00265 }00266 00267 <a name="l00268"></a><a class="code" href="classwGui_1_1CPainter.html#b1">00268</a> <span class="keywordtype">void</span> CPainter::UnlockSurface(<span class="keywordtype">void</span>)00269 {00270      <span class="keywordflow">if</span> (SDL_MUSTLOCK(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>))00271      {00272           SDL_UnlockSurface(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>);00273      }00274 }00275 00276 <a name="l00277"></a><a class="code" href="classwGui_1_1CPainter.html#b2">00277</a> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a> CPainter::MixColor(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>&amp; ColorBase, <span class="keyword">const</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>&amp; ColorAdd)00278 {00279      <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a> MixedColor(COLOR_TRANSPARENT);00280      <span class="keywordflow">switch</span> (m_PaintMode)00281      {00282      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s0">PAINT_IGNORE</a>:00283           MixedColor = ColorBase;00284           <span class="keywordflow">break</span>;00285      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s1">PAINT_REPLACE</a>:00286           MixedColor = ColorAdd;00287           <span class="keywordflow">break</span>;00288      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s2">PAINT_NORMAL</a>:00289           MixedColor = ColorBase + ColorAdd;00290           <span class="keywordflow">break</span>;00291      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s4">PAINT_AND</a>:00292           MixedColor = ColorBase &amp; ColorAdd;00293           <span class="keywordflow">break</span>;00294      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s3">PAINT_OR</a>:00295           MixedColor = ColorBase | ColorAdd;00296           <span class="keywordflow">break</span>;00297      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CPainter.html#s6s5">PAINT_XOR</a>:00298           MixedColor = ColorBase ^ ColorAdd;00299           <span class="keywordflow">break</span>;00300      }00301 00302      <span class="keywordflow">return</span> MixedColor;00303 }00304 00305 <a name="l00306"></a><a class="code" href="classwGui_1_1CPainter.html#a9">00306</a> <span class="keywordtype">void</span> CPainter::ReplaceColor(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>&amp; NewColor, <span class="keyword">const</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>&amp; OldColor)00307 {00308      <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; <a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>-&gt;h; ++y)00309      {00310           <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; <a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>-&gt;w; ++x)00311           {00312                <a class="code" href="classwGui_1_1CPoint.html">CPoint</a> point(x, y);00313                <span class="keywordflow">if</span>(<a class="code" href="classwGui_1_1CPainter.html#a8">ReadPoint</a>(point) == OldColor)00314                {00315                     <a class="code" href="classwGui_1_1CPainter.html#a7">DrawPoint</a>(point, NewColor);00316                }00317           }00318      }00319 }00320 00321 <a name="l00322"></a><a class="code" href="classwGui_1_1CPainter.html#a10">00322</a> <span class="keywordtype">void</span> CPainter::TransparentColor(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CRGBColor.html">CRGBColor</a>&amp; TransparentColor)00323 {00324      SDL_SetColorKey(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>, SDL_SRCCOLORKEY, TransparentColor.<a class="code" href="classwGui_1_1CRGBColor.html#a2">SDLColor</a>(<a class="code" href="classwGui_1_1CPainter.html#n0">m_pSurface</a>-&gt;format));00325 }00326 00327 }00328 </pre></div><hr><address style="align: right;"><small>Generated on Sat Oct 25 12:43:24 2003 for wGui by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -