forked from Phobos-developers/YRpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_blit_trans_lucent50_alpha_z_read_8h-source.html
140 lines (140 loc) · 11.2 KB
/
_blit_trans_lucent50_alpha_z_read_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
132
133
134
135
136
137
138
139
140
<!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/BlitTransLucent50AlphaZRead.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>BlitTransLucent50AlphaZRead.h</h1><a href="_blit_trans_lucent50_alpha_z_read_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 BLITTRANSLUCENT50ALPHAZREAD_H</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define BLITTRANSLUCENT50ALPHAZREAD_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_trans_lucent50_alpha_z_read.html">00007</a> <span class="keyword">class </span><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html">BlitTransLucent50AlphaZRead</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_trans_lucent50_alpha_z_read.html#699b88a7aca238ab1236ccf55416a5df">Blit</a>
<a name="l00009"></a><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#699b88a7aca238ab1236ccf55416a5df">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 <span class="keywordflow">if</span> (*zBuf++ > zMin) {
<a name="l00016"></a>00016 byte srcv = *src++;
<a name="l00017"></a>00017 <span class="keywordflow">if</span> (srcv) {
<a name="l00018"></a>00018 word tmpval = (this-><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#443e249dea2d89706d029ca19dd85eb1">Data</a>[srcv | extra[*aBuf++]] >> 1) & this->AlphaData;
<a name="l00019"></a>00019 word dstval = (*dst >> 1) & this->AlphaData;
<a name="l00020"></a>00020 tmpval += dstval;
<a name="l00021"></a>00021 *dst = tmpval;
<a name="l00022"></a>00022 }
<a name="l00023"></a>00023 }
<a name="l00024"></a>00024 ++dst;
<a name="l00025"></a>00025 <span class="keywordflow">if</span> (Drawing::ZBuffer->BufferEnd <= zBuf) {
<a name="l00026"></a>00026 zBuf -= Drawing::ZBuffer->BufferSize;
<a name="l00027"></a>00027 }
<a name="l00028"></a>00028 <span class="keywordflow">if</span> (Drawing::ABuffer->BufferEnd <= aBuf) {
<a name="l00029"></a>00029 aBuf -= Drawing::ABuffer->BufferSize;
<a name="l00030"></a>00030 }
<a name="l00031"></a>00031 }
<a name="l00032"></a>00032 }
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#91d8e8a37a07acee94f7ad9ea1a70236">CallBlit0</a>
<a name="l00035"></a><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#91d8e8a37a07acee94f7ad9ea1a70236">00035</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="l00036"></a>00036 {
<a name="l00037"></a>00037 this-><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#699b88a7aca238ab1236ccf55416a5df">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00038"></a>00038 }
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#fb70857d08f62580d8474775f19c0913">CallBlit1</a>
<a name="l00041"></a><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#fb70857d08f62580d8474775f19c0913">00041</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="l00042"></a>00042 {
<a name="l00043"></a>00043 this-><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#699b88a7aca238ab1236ccf55416a5df">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00044"></a>00044 }
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#f1eff5dcb52087d6d041ad0a26120818">CallBlit2</a>
<a name="l00047"></a><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#f1eff5dcb52087d6d041ad0a26120818">00047</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="l00048"></a>00048 {
<a name="l00049"></a>00049 this-><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#699b88a7aca238ab1236ccf55416a5df">Blit</a>(dest, src, length, zMin, zBuf, aBuf, aLvl, 0);
<a name="l00050"></a>00050 }
<a name="l00051"></a>00051
<a name="l00052"></a>00052 <span class="keyword">public</span>:
<a name="l00053"></a><a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#443e249dea2d89706d029ca19dd85eb1">00053</a> T *<a class="code" href="class_blit_trans_lucent50_alpha_z_read.html#443e249dea2d89706d029ca19dd85eb1">Data</a>;
<a name="l00054"></a>00054 };
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <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>