forked from Phobos-developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_blit_plain_xlat_alpha_8h-source.html
131 lines (131 loc) · 10.3 KB
/
_blit_plain_xlat_alpha_8h-source.html
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>YR++: Blitters/Blitter/BlitPlainXlatAlpha.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<script type="text/javascript">
<!--
function changeDisplayState (e){
var num=this.id.replace(/[^[0-9]/g,'');
var button=this.firstChild;
var sectionDiv=document.getElementById('dynsection'+num);
if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
sectionDiv.style.display='block';
button.src='open.gif';
}else{
sectionDiv.style.display='none';
button.src='closed.gif';
}
}
function initDynSections(){
var divs=document.getElementsByTagName('div');
var sectionCounter=1;
for(var i=0;i<divs.length-1;i++){
if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
var header=divs[i];
var section=divs[i+1];
var button=header.firstChild;
if (button!='IMG'){
divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
button=document.createElement('img');
divs[i].insertBefore(button,divs[i].firstChild);
}
header.style.cursor='pointer';
header.onclick=changeDisplayState;
header.id='dynheader'+sectionCounter;
button.src='closed.gif';
section.id='dynsection'+sectionCounter;
section.style.display='none';
section.style.marginLeft='14px';
sectionCounter++;
}
}
}
window.onload = initDynSections;
-->
</script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<div class="navpath"><a class="el" href="dir_f65534ef8218155ebbbcdb4eded228d2.html">Blitters</a> » <a class="el" href="dir_10eefb4ece531a6f61eb0c4b25712be1.html">Blitter</a>
</div>
</div>
<div class="contents">
<h1>BlitPlainXlatAlpha.h</h1><a href="_blit_plain_xlat_alpha_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef BLITPLAINXLATALPHA_H</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define BLITPLAINXLATALPHA_H</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include <<a class="code" href="_blitters_8h.html">Blitters.h</a>></span>
<a name="l00005"></a>00005
<a name="l00006"></a>00006 <span class="keyword">template</span> <<span class="keyword">typename</span> T>
<a name="l00007"></a><a class="code" href="class_blit_plain_xlat_alpha.html">00007</a> <span class="keyword">class </span><a class="code" href="class_blit_plain_xlat_alpha.html">BlitPlainXlatAlpha</a> : <span class="keyword">public</span> <a class="code" href="class_blitter.html">Blitter</a><T> {
<a name="l00008"></a>00008 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_plain_xlat_alpha.html#916fad1d88d86c64f9107a7cbb500dfb">Blit</a>
<a name="l00009"></a><a class="code" href="class_blit_plain_xlat_alpha.html#916fad1d88d86c64f9107a7cbb500dfb">00009</a> (<span class="keywordtype">void</span> *dest, byte *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> zMin, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *zBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *aBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> aLvl, <span class="keywordtype">int</span> warpOffset)
<a name="l00010"></a>00010 {
<a name="l00011"></a>00011 T *dst = reinterpret_cast < T * >(dest);
<a name="l00012"></a>00012 <span class="keywordtype">int</span> alphaLevel = min((261 * max(aLvl, 0)) >> 11, 254);
<a name="l00013"></a>00013 word *extra = this->ExtraData[alphaLevel << 9];
<a name="l00014"></a>00014 <span class="keywordflow">for</span> (; length > 0; --length, ++dst) {
<a name="l00015"></a>00015 word *buf = this-><a class="code" href="class_blit_plain_xlat_alpha.html#027ca12e5a919ba5c6087c908cce5281">Data</a>;
<a name="l00016"></a>00016 byte srcv = *src++;
<a name="l00017"></a>00017 byte aphv = *aBuf++;
<a name="l00018"></a>00018 *dst++ = this-><a class="code" href="class_blit_plain_xlat_alpha.html#027ca12e5a919ba5c6087c908cce5281">Data</a>[srcv | extra[aphv]];
<a name="l00019"></a>00019 <span class="keywordflow">if</span> (Drawing::ABuffer->BufferEnd <= aBuf) {
<a name="l00020"></a>00020 aBuf -= Drawing::ABuffer->BufferSize;
<a name="l00021"></a>00021 }
<a name="l00022"></a>00022 }
<a name="l00023"></a>00023 }
<a name="l00024"></a>00024
<a name="l00025"></a>00025 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_plain_xlat_alpha.html#96d9b3ac856670cd7fba93e32ff05813">CallBlit0</a>
<a name="l00026"></a><a class="code" href="class_blit_plain_xlat_alpha.html#96d9b3ac856670cd7fba93e32ff05813">00026</a> (<span class="keywordtype">void</span> *dest, byte *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> zMin, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *zBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *aBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> aLvl, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> unknownArg, <a class="code" href="_y_r_p_p_core_8h.html#d342ac907eb044443153a22f964bf0af">DWORD</a> useless)
<a name="l00027"></a>00027 {
<a name="l00028"></a>00028 this-><a class="code" href="class_blit_plain_xlat_alpha.html#916fad1d88d86c64f9107a7cbb500dfb">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00029"></a>00029 }
<a name="l00030"></a>00030
<a name="l00031"></a>00031 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_plain_xlat_alpha.html#ba2829ba587ed58208579f040bd3e57b">CallBlit1</a>
<a name="l00032"></a><a class="code" href="class_blit_plain_xlat_alpha.html#ba2829ba587ed58208579f040bd3e57b">00032</a> (<span class="keywordtype">void</span> *dest, byte *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> zMin, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *zBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *aBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> aLvl)
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 this-><a class="code" href="class_blit_plain_xlat_alpha.html#916fad1d88d86c64f9107a7cbb500dfb">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00035"></a>00035 }
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_plain_xlat_alpha.html#60fa52fac2101ccdca02c1a16f557c4c">CallBlit2</a>
<a name="l00038"></a><a class="code" href="class_blit_plain_xlat_alpha.html#60fa52fac2101ccdca02c1a16f557c4c">00038</a> (<span class="keywordtype">void</span> *dest, byte *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> length, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> zMin, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *zBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> *aBuf, <a class="code" href="_y_r_p_p_core_8h.html#197942eefa7db30960ae396d68339b97">WORD</a> aLvl, <a class="code" href="_y_r_p_p_core_8h.html#d342ac907eb044443153a22f964bf0af">DWORD</a> useless)
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 this-><a class="code" href="class_blit_plain_xlat_alpha.html#916fad1d88d86c64f9107a7cbb500dfb">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00041"></a>00041 }
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="keyword">public</span>:
<a name="l00044"></a><a class="code" href="class_blit_plain_xlat_alpha.html#027ca12e5a919ba5c6087c908cce5281">00044</a> T *<a class="code" href="class_blit_plain_xlat_alpha.html#027ca12e5a919ba5c6087c908cce5281">Data</a>;
<a name="l00045"></a>00045 };
<a name="l00046"></a>00046
<a name="l00047"></a>00047 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue May 18 03:54:24 2010 for YR++ by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>