<html>
<body>
<div id="body" style="background-color:#ffffff;" >
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head" style="border-bottom-width:1px;border-bottom-style:solid;" ><td class="headtd" style="padding:0;padding-top:.2em;" colspan="4">Commit in <b><tt>lxdream</tt></b></td></tr>
<tr><td><tt>po/<a href="#file1">pt_BR.po</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+89</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-86</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/<a href="#file2">Makefile.am</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+1</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-1</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt> /<a href="#file3">Makefile.in</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+81</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-65</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/pvr2/<a href="#file4">glrender.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+36</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-14</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt> /<a href="#file5">scene.h</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+1</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt> /<a href="#file6">tileiter.h</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+26</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-24</td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt> /<a href="#file7"><span id="added" style="background-color:#ddffdd;" >untile.c</span></a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+143</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" align="right" nowrap="nowrap">added e1848ca9b5b1</td></tr>
<tr class="alt" style=";" ><td><tt>src/tools/<a href="#file8">genglsl.c</a></tt></td><td id="addedalt" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ccf7cc;" align="right">+48</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td><tt>test/<a href="#file9">pvr.c</a></tt></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+2</td><td></td><td class="headtd2" style="padding-left:.3em;padding-right:.3em;" nowrap="nowrap">1038800cecd8 -> e1848ca9b5b1</td></tr>
<tr><td></td><td id="added" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ddffdd;" align="right">+427</td><td id="removed" class="headtd2" style="padding-left:.3em;padding-right:.3em; background-color:#ffdddd;" align="right">-190</td><td></td></tr>
</table>
<small id="info" style="color: #888888;" >1 added + 8 modified, total 9 files</small><br />
<pre class="comment" style="white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd;" >
Updated pt_BR translation from Arthonis
</pre>
<hr /><a name="file1" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/po</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>pt_BR.po</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/po/pt_BR.po
+++ lxdream/po/pt_BR.po
@@ -8,37 +8,42 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > "Project-Id-Version: lxdream 0.8.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-27 20:19+1000\n"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-"PO-Revision-Date: 20<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >09-04-03 11:05</span>-0300\n"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+"PO-Revision-Date: 20<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >10-11-30 10:17</span>-0300\n"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > "Last-Translator: Gabriel Tillmann <gtillmann@gmail.com>\n"
"Language-Team: PT <trans-pt@lxdream.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_ctrl.m:325 src/gtkui/gtk_ctrl.c:494
-#, fuzzy, c-format
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_ctrl.m:325
+#: src/gtkui/gtk_ctrl.c:494
+#, c-format
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Port %c."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Slot %d."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Porta %c."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_ctrl.m:327 src/gtkui/gtk_ctrl.c:523
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_ctrl.m:327
+#: src/gtkui/gtk_ctrl.c:523
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #, c-format
msgid "VMU %d."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "VMU %d."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/cocoaui/cocoaui.m:447
#, c-format
msgid "Running (%2.4f%%)"
msgstr "Rodando (%2.4f%%)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:193 src/gtkui/gtk_win.c:356
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:193
+#: src/gtkui/gtk_win.c:356
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "(Press <ctrl><alt> to release grab)"
msgstr "(Pressione <Ctrl><alt> para desprender)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:205 src/gtkui/gtk_win.c:366
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:205
+#: src/gtkui/gtk_win.c:366
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Running"
msgstr "Rodando"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/cocoaui/cocoa_win.m:208 src/gtkui/gtk_win.c:366
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/cocoaui/cocoa_win.m:208
+#: src/gtkui/gtk_win.c:366
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Stopped"
msgstr "Parado"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -60,7 +65,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/config.c:48
msgid "VMU path"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Caminho do VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/config.c:49
msgid "Bootstrap IP.BIN"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -71,26 +76,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Dispositivo Serial"
#: src/dreamcast.c:203
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgid ""
-"No program is loaded, and no BIOS is configured (required to boot a CD "
-"image). To continue, either load a binary program, or set the path to your "
-"BIOS file in the Path Preferences"
-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgid "No program is loaded, and no BIOS is configured (required to boot a CD image). To continue, either load a binary program, or set the path to your BIOS file in the Path Preferences"
+msgstr "Nenhum programa foi carregado, e a BIOS não está configurada (requisito para arrancar uma imagem de CD). Para continuar, ou carregue um programa binário, ou configure o Caminho do seu arquivo de BIOS nas Preferências"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/dreamcast.c:338
#, c-format
msgid "File is not a %s save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "O arquivo %s não é um estado salvo"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/dreamcast.c:343
#, c-format
msgid "Unsupported %s save state version"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Versão de estado salvo %s não suportada"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/dreamcast.c:348
#, c-format
msgid "%s save state is corrupted (bad module count)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "O estado salvo %s está corrompido (Má contagem de módulo)"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/drivers/audio_alsa.c:35
msgid "Audio output device"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -118,7 +120,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/drivers/audio_sdl.c:125
msgid "SDL sound driver"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Driver de Som SDL"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#. Sense key 2 == Not Ready (ie temporary failure). Just ignore and
#. * consider the drive empty for now, but warn about any other errors
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -126,7 +128,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/drivers/cd_mmc.c:182
#, c-format
msgid "Unable to read disc table of contents (error %04x)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Impossível ler a tabela de conteúdo do disco (erro %04x) "
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/drivers/video_gtk.c:132
msgid "GTK-based OpenGL driver"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -140,7 +142,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "OS X Cocoa GUI-based OpenGL driver"
msgstr "Driver GUI OS X Cocoa baseado em OpenGL "
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gdlist.c:187 src/gdlist.c:210
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gdlist.c:187
+#: src/gdlist.c:210
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Empty"
msgstr "Vazio"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -152,11 +155,13 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load state..."
msgstr "Carregar stado..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtkcb.c:184 src/gtkui/gtkcb.c:217
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtkcb.c:184
+#: src/gtkui/gtkcb.c:217
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "lxDream Save State (*.dst)"
msgstr "lxDream Save State (*.dst)"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtkcb.c:297 src/gtkui/gtk_dump.c:69
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtkcb.c:297
+#: src/gtkui/gtk_dump.c:69
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Memory dump"
msgstr "Dump de memória"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -172,10 +177,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "No address selected, so can't run to it"
msgstr "Sem endereço selecionado, então impossível correr a ele"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_ctrl.c:80 src/gtkui/gtk_ctrl.c:109 src/gtkui/gtk_hotkeys.c:50
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_ctrl.c:80
+#: src/gtkui/gtk_ctrl.c:109
+#: src/gtkui/gtk_hotkeys.c:50
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/gtkui/gtk_hotkeys.c:79
msgid "<press key>"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<Pre<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >c</span>ione tecla>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<Pre<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >ss</span>ione tecla>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_ctrl.c:209
msgid "Controller Configuration"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -187,24 +194,24 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_ctrl.c:252
msgid "Load VMU"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_ctrl.c:266
msgid "Create VMU"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Criar VMU"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_ctrl.c:337 src/gtkui/gtk_ctrl.c:355
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_ctrl.c:337
+#: src/gtkui/gtk_ctrl.c:355
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "<empty>"
msgstr "<Vazio>"
#: src/gtkui/gtk_ctrl.c:364
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load VMU..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >stado</span>..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >VMU</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_ctrl.c:365
msgid "Create VMU..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Criar VMU..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_ctrl.c:559
msgid "Controller Settings"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -267,9 +274,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Configurações de GD-Rom"
#: src/gtkui/gtk_hotkeys.c:186
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Hotkey Settings"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Configurações de <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >diretório</span>s"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Configurações de <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Hotkey</span>s"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtk_mmio.c:109
msgid "Address"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -299,7 +305,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Close"
msgstr "Fechar"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/gtkui/gtk_path.c:34 src/gtkui/gtk_path.c:57
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/gtkui/gtk_path.c:34
+#: src/gtkui/gtk_path.c:57
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Select file"
msgstr "Selecionar arquivo"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -325,7 +332,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:73
msgid "Load and run a program binary"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar e <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >Corre</span>r Um programa Binário"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar e <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Roda</span>r Um programa Binário"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:74
msgid "_Reset"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -348,49 +355,44 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Continuar"
#: src/gtkui/gtkui.c:77
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "L_oad State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >_C</span>arregar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >C_</span>arregar Estado..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:77
msgid "Load an lxdream save state"
msgstr "Carregar estado do lxdream"
#: src/gtkui/gtkui.c:78
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "S_ave State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >_S</span>alvar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >S_</span>alvar Estado..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:78
msgid "Create an lxdream save state"
msgstr "Criar estado do lxdream"
#: src/gtkui/gtkui.c:79
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Load Quick State"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Carregar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Carregar Estado<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > Rápido</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:79
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Load the current quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Carregar estado do lxdream"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar estado Rápido atual."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:80
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Save Quick State..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Salvar Estado..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Salvar Estado<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" > Rápido</span>..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:80
msgid "Save to the current quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Salvar para o atual estado salvo rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:81
msgid "Select _Quick State"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar _Estado Rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:81
msgid "Set quick save state"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Escolher estado salvo rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:82
msgid "E_xit"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -457,14 +459,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Configurar saída de vídeo"
#: src/gtkui/gtkui.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "_Hotkeys..."
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "_Controles..."
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "_Hotkeys..."
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Configure hotkeys"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Configurar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >Controle</span>s"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Configurar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >hotkey</span>s"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:92
msgid "_About..."
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -537,12 +537,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #: src/gtkui/gtkui.c:257
#, c-format
msgid "State _%d"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Estado_%d"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:259
#, c-format
msgid "Use quick save state %d"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Usar estado salvo rápido %d"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/gtkui/gtkui.c:373
msgid "Debugger"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -558,68 +558,67 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:40
msgid "Resume emulation"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Continuar emulação"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:41
msgid "Stop emulation"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Parar emulação"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:42
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Reset emulator"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Reiniciar <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >dreamcast</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Reiniciar <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >o emulador</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:43
msgid "Exit emulator"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Sair do emulador"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:44
msgid "Save current quick save"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Salvar atual estado rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:45
msgid "Load current quick save"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Carregar atual estado rápido"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:46
msgid "Select quick save state 0"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 0"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:47
msgid "Select quick save state 1"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 1"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:48
msgid "Select quick save state 2"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 2"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:49
msgid "Select quick save state 3"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 3"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:50
msgid "Select quick save state 4"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 4"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:51
msgid "Select quick save state 5"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 5"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:52
msgid "Select quick save state 6"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 6"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:53
msgid "Select quick save state 7"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 7"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:54
msgid "Select quick save state 8"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 8"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/hotkeys.c:55
msgid "Select quick save state 9"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Selecionar estado salvo rápido 9"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/main.c:87
msgid "Run the AICA SPU only, with the supplied program"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -638,17 +637,16 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgstr "Iniciar no modo debbugador"
#: src/main.c:91
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Start in fullscreen mode"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "Iniciar no modo <span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >debbugador</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar no modo <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >Tela cheia</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/main.c:92
msgid "Start GDB remote server on PORT for SH4"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar Servidor remoto do GDB em PORT para SH4"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/main.c:93
msgid "Start GDB remote server on PORT for ARM"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr ""
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "Iniciar Servidor remoto do GDB em PORT para ARM"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#: src/main.c:94
msgid "Display this usage information"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -698,19 +696,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Disable the SH4 translator"
msgstr "Desabilitar o tradutor de SH4"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:106 src/maple/lightgun.c:86
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:106
+#: src/maple/lightgun.c:86
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad left"
msgstr "Dpad Esquerda"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:107 src/maple/lightgun.c:87
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:107
+#: src/maple/lightgun.c:87
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad right"
msgstr "Dpad Direita"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:108 src/maple/lightgun.c:88
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:108
+#: src/maple/lightgun.c:88
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad up"
msgstr "Dpad Cima"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:109 src/maple/lightgun.c:89
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:109
+#: src/maple/lightgun.c:89
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Dpad down"
msgstr "Dpad Baixo"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -738,11 +740,13 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button Y"
msgstr "Botão Y"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:116 src/maple/lightgun.c:90
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:116
+#: src/maple/lightgun.c:90
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button A"
msgstr "Botão A"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:117 src/maple/lightgun.c:91
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:117
+#: src/maple/lightgun.c:91
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Button B"
msgstr "Botão B"
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -754,14 +758,14 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Trigger right"
msgstr "Gatilho Direita"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#: src/maple/controller.c:120 src/maple/lightgun.c:92
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#: src/maple/controller.c:120
+#: src/maple/lightgun.c:92
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Start button"
msgstr "Botão Start"
#: src/maple/vmu.c:92
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-#, fuzzy
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > msgid "Volume"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-msgstr "V<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >alor</span>"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+msgstr "V<span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >olume</span>"
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#. Can't happen.
#: src/x86dasm/dis-buf.c:57
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -780,9 +784,8 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
#~ msgid "Bios rom"
#~ msgstr "Bios rom"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #~ msgid "Flash rom"
#~ msgstr "Flash rom"
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #~ msgid "Save state path"
#~ msgstr "diretório do estado salvo"
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+
</pre></div>
<hr /><a name="file2" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>Makefile.am</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/Makefile.am
+++ lxdream/src/Makefile.am
@@ -55,7 +55,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > sh4/cache.c sh4/mmu.h sh4/shadow.c \
aica/armcore.c aica/armcore.h aica/armdasm.c aica/armdasm.h aica/armmem.c \
aica/aica.c aica/aica.h aica/audio.c aica/audio.h \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- pvr2/pvr2.c pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ pvr2/pvr2.c pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h <span id="addedchars" style="background-color:#99ff99;font-weight:bolder;" >pvr2/untile.c </span>\
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > pvr2/tacore.c pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c pvr2/scene.h \
pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c \
</pre></div>
<hr /><a name="file3" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>Makefile.in</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/Makefile.in
+++ lxdream/src/Makefile.in
@@ -155,18 +155,18 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > sh4/cache.c sh4/mmu.h sh4/shadow.c aica/armcore.c \
aica/armcore.h aica/armdasm.c aica/armdasm.h aica/armmem.c \
aica/aica.c aica/aica.h aica/audio.c aica/audio.h pvr2/pvr2.c \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/tacore.c \
- pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
- pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c \
- pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def \
- pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c maple/maple.c \
- maple/maple.h maple/controller.c maple/kbd.c maple/mouse.c \
- maple/lightgun.c maple/vmu.c loader.c loader.h elf.h \
- bootstrap.c bootstrap.h util.c gdlist.c gdlist.h vmu/vmuvol.c \
- vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h display.c display.h \
- dckeysyms.h drivers/audio_null.c drivers/video_null.c \
- drivers/video_gl.c drivers/video_gl.h drivers/gl_fbo.c \
- drivers/serial_unix.c drivers/cdrom/cdrom.h \
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ pvr2/pvr2.h pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/untile.c \
+ pvr2/tacore.c pvr2/rendsort.c pvr2/tileiter.h \
+ pvr2/shaders.glsl pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c \
+ pvr2/scene.c pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h \
+ pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c \
+ maple/maple.c maple/maple.h maple/controller.c maple/kbd.c \
+ maple/mouse.c maple/lightgun.c maple/vmu.c loader.c loader.h \
+ elf.h bootstrap.c bootstrap.h util.c gdlist.c gdlist.h \
+ vmu/vmuvol.c vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h \
+ display.c display.h dckeysyms.h drivers/audio_null.c \
+ drivers/video_null.c drivers/video_gl.c drivers/video_gl.h \
+ drivers/gl_fbo.c drivers/serial_unix.c drivers/cdrom/cdrom.h \
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > drivers/cdrom/cdrom.c drivers/cdrom/drive.h \
drivers/cdrom/sector.h drivers/cdrom/sector.c \
drivers/cdrom/defs.h drivers/cdrom/cd_nrg.c \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -262,31 +262,31 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream-armdasm.$(OBJEXT) lxdream-armmem.$(OBJEXT) \
lxdream-aica.$(OBJEXT) lxdream-audio.$(OBJEXT) \
lxdream-pvr2.$(OBJEXT) lxdream-pvr2mem.$(OBJEXT) \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- lxdream-tacore.$(OBJEXT) lxdream-rendsort.$(OBJEXT) \
- lxdream-texcache.$(OBJEXT) lxdream-yuv.$(OBJEXT) \
- lxdream-rendsave.$(OBJEXT) lxdream-scene.$(OBJEXT) \
- lxdream-gl_sl.$(OBJEXT) lxdream-glutil.$(OBJEXT) \
- lxdream-glrender.$(OBJEXT) lxdream-maple.$(OBJEXT) \
- lxdream-controller.$(OBJEXT) lxdream-kbd.$(OBJEXT) \
- lxdream-mouse.$(OBJEXT) lxdream-lightgun.$(OBJEXT) \
- lxdream-vmu.$(OBJEXT) lxdream-loader.$(OBJEXT) \
- lxdream-bootstrap.$(OBJEXT) lxdream-util.$(OBJEXT) \
- lxdream-gdlist.$(OBJEXT) lxdream-vmuvol.$(OBJEXT) \
- lxdream-vmulist.$(OBJEXT) lxdream-display.$(OBJEXT) \
- lxdream-audio_null.$(OBJEXT) lxdream-video_null.$(OBJEXT) \
- lxdream-video_gl.$(OBJEXT) lxdream-gl_fbo.$(OBJEXT) \
- lxdream-serial_unix.$(OBJEXT) lxdream-cdrom.$(OBJEXT) \
- lxdream-sector.$(OBJEXT) lxdream-cd_nrg.$(OBJEXT) \
- lxdream-cd_cdi.$(OBJEXT) lxdream-cd_gdi.$(OBJEXT) \
- lxdream-edc_ecc.$(OBJEXT) lxdream-drive.$(OBJEXT) \
- lxdream-cd_mmc.$(OBJEXT) lxdream-isofs.$(OBJEXT) \
- lxdream-hotkeys.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
- $(am__objects_3) $(am__objects_4) $(am__objects_5) \
- $(am__objects_6) $(am__objects_7) $(am__objects_8) \
- $(am__objects_9) $(am__objects_10) $(am__objects_11) \
- $(am__objects_12) $(am__objects_13) $(am__objects_14) \
- $(am__objects_15) $(am__objects_16) $(am__objects_17) \
- $(am__objects_18)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ lxdream-untile.$(OBJEXT) lxdream-tacore.$(OBJEXT) \
+ lxdream-rendsort.$(OBJEXT) lxdream-texcache.$(OBJEXT) \
+ lxdream-yuv.$(OBJEXT) lxdream-rendsave.$(OBJEXT) \
+ lxdream-scene.$(OBJEXT) lxdream-gl_sl.$(OBJEXT) \
+ lxdream-glutil.$(OBJEXT) lxdream-glrender.$(OBJEXT) \
+ lxdream-maple.$(OBJEXT) lxdream-controller.$(OBJEXT) \
+ lxdream-kbd.$(OBJEXT) lxdream-mouse.$(OBJEXT) \
+ lxdream-lightgun.$(OBJEXT) lxdream-vmu.$(OBJEXT) \
+ lxdream-loader.$(OBJEXT) lxdream-bootstrap.$(OBJEXT) \
+ lxdream-util.$(OBJEXT) lxdream-gdlist.$(OBJEXT) \
+ lxdream-vmuvol.$(OBJEXT) lxdream-vmulist.$(OBJEXT) \
+ lxdream-display.$(OBJEXT) lxdream-audio_null.$(OBJEXT) \
+ lxdream-video_null.$(OBJEXT) lxdream-video_gl.$(OBJEXT) \
+ lxdream-gl_fbo.$(OBJEXT) lxdream-serial_unix.$(OBJEXT) \
+ lxdream-cdrom.$(OBJEXT) lxdream-sector.$(OBJEXT) \
+ lxdream-cd_nrg.$(OBJEXT) lxdream-cd_cdi.$(OBJEXT) \
+ lxdream-cd_gdi.$(OBJEXT) lxdream-edc_ecc.$(OBJEXT) \
+ lxdream-drive.$(OBJEXT) lxdream-cd_mmc.$(OBJEXT) \
+ lxdream-isofs.$(OBJEXT) lxdream-hotkeys.$(OBJEXT) \
+ $(am__objects_1) $(am__objects_2) $(am__objects_3) \
+ $(am__objects_4) $(am__objects_5) $(am__objects_6) \
+ $(am__objects_7) $(am__objects_8) $(am__objects_9) \
+ $(am__objects_10) $(am__objects_11) $(am__objects_12) \
+ $(am__objects_13) $(am__objects_14) $(am__objects_15) \
+ $(am__objects_16) $(am__objects_17) $(am__objects_18)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream_OBJECTS = $(am_lxdream_OBJECTS)
lxdream_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -575,34 +575,35 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > sh4/shadow.c aica/armcore.c aica/armcore.h aica/armdasm.c \
aica/armdasm.h aica/armmem.c aica/aica.c aica/aica.h \
aica/audio.c aica/audio.h pvr2/pvr2.c pvr2/pvr2.h \
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/tacore.c pvr2/rendsort.c \
- pvr2/tileiter.h pvr2/shaders.glsl pvr2/texcache.c pvr2/yuv.c \
- pvr2/rendsave.c pvr2/scene.c pvr2/scene.h pvr2/gl_sl.c \
- pvr2/shaders.h pvr2/shaders.def pvr2/glutil.c pvr2/glutil.h \
- pvr2/glrender.c maple/maple.c maple/maple.h maple/controller.c \
- maple/kbd.c maple/mouse.c maple/lightgun.c maple/vmu.c \
- loader.c loader.h elf.h bootstrap.c bootstrap.h util.c \
- gdlist.c gdlist.h vmu/vmuvol.c vmu/vmuvol.h vmu/vmulist.c \
- vmu/vmulist.h display.c display.h dckeysyms.h \
- drivers/audio_null.c drivers/video_null.c drivers/video_gl.c \
- drivers/video_gl.h drivers/gl_fbo.c drivers/serial_unix.c \
- drivers/cdrom/cdrom.h drivers/cdrom/cdrom.c \
- drivers/cdrom/drive.h drivers/cdrom/sector.h \
- drivers/cdrom/sector.c drivers/cdrom/defs.h \
- drivers/cdrom/cd_nrg.c drivers/cdrom/cd_cdi.c \
- drivers/cdrom/cd_gdi.c drivers/cdrom/edc_ecc.c \
- drivers/cdrom/ecc.h drivers/cdrom/drive.c \
- drivers/cdrom/edc_crctable.h drivers/cdrom/edc_encoder.h \
- drivers/cdrom/edc_l2sq.h drivers/cdrom/edc_scramble.h \
- drivers/cdrom/cd_mmc.c drivers/cdrom/isofs.h \
- drivers/cdrom/isofs.c sh4/sh4.def sh4/sh4core.in sh4/sh4x86.in \
- sh4/sh4dasm.in sh4/sh4stat.in hotkeys.c hotkeys.h \
- $(am__append_1) $(am__append_2) $(am__append_4) \
- $(am__append_5) $(am__append_6) $(am__append_7) \
- $(am__append_8) $(am__append_9) $(am__append_10) \
- $(am__append_17) $(am__append_19) $(am__append_21) \
- $(am__append_23) $(am__append_25) $(am__append_27) \
- $(am__append_28) $(am__append_29) $(am__append_30)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ pvr2/pvr2mem.c pvr2/pvr2mmio.h pvr2/untile.c pvr2/tacore.c \
+ pvr2/rendsort.c pvr2/tileiter.h pvr2/shaders.glsl \
+ pvr2/texcache.c pvr2/yuv.c pvr2/rendsave.c pvr2/scene.c \
+ pvr2/scene.h pvr2/gl_sl.c pvr2/shaders.h pvr2/shaders.def \
+ pvr2/glutil.c pvr2/glutil.h pvr2/glrender.c maple/maple.c \
+ maple/maple.h maple/controller.c maple/kbd.c maple/mouse.c \
+ maple/lightgun.c maple/vmu.c loader.c loader.h elf.h \
+ bootstrap.c bootstrap.h util.c gdlist.c gdlist.h vmu/vmuvol.c \
+ vmu/vmuvol.h vmu/vmulist.c vmu/vmulist.h display.c display.h \
+ dckeysyms.h drivers/audio_null.c drivers/video_null.c \
+ drivers/video_gl.c drivers/video_gl.h drivers/gl_fbo.c \
+ drivers/serial_unix.c drivers/cdrom/cdrom.h \
+ drivers/cdrom/cdrom.c drivers/cdrom/drive.h \
+ drivers/cdrom/sector.h drivers/cdrom/sector.c \
+ drivers/cdrom/defs.h drivers/cdrom/cd_nrg.c \
+ drivers/cdrom/cd_cdi.c drivers/cdrom/cd_gdi.c \
+ drivers/cdrom/edc_ecc.c drivers/cdrom/ecc.h \
+ drivers/cdrom/drive.c drivers/cdrom/edc_crctable.h \
+ drivers/cdrom/edc_encoder.h drivers/cdrom/edc_l2sq.h \
+ drivers/cdrom/edc_scramble.h drivers/cdrom/cd_mmc.c \
+ drivers/cdrom/isofs.h drivers/cdrom/isofs.c sh4/sh4.def \
+ sh4/sh4core.in sh4/sh4x86.in sh4/sh4dasm.in sh4/sh4stat.in \
+ hotkeys.c hotkeys.h $(am__append_1) $(am__append_2) \
+ $(am__append_4) $(am__append_5) $(am__append_6) \
+ $(am__append_7) $(am__append_8) $(am__append_9) \
+ $(am__append_10) $(am__append_17) $(am__append_19) \
+ $(am__append_21) $(am__append_23) $(am__append_25) \
+ $(am__append_27) $(am__append_28) $(am__append_29) \
+ $(am__append_30)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream_CPPFLAGS = @LXDREAMCPPFLAGS@
@BUILD_SH4X86_TRUE@test_testsh4x86_LDADD = @LXDREAM_LIBS@ @GLIB_LIBS@ @GTK_LIBS@ @LIBPNG_LIBS@
@BUILD_SH4X86_TRUE@test_testsh4x86_CPPFLAGS = @LXDREAMCPPFLAGS@
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -875,6 +876,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-tacore.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-texcache.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-timer.Po@am__quote@
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-untile.Po@am__quote@
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lxdream-video_gdk.Po@am__quote@
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -1565,6 +1567,20 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-pvr2mem.obj `if test -f 'pvr2/pvr2mem.c'; then $(CYGPATH_W) 'pvr2/pvr2mem.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/pvr2mem.c'; fi`
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+lxdream-untile.o: pvr2/untile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-untile.o -MD -MP -MF "$(DEPDIR)/lxdream-untile.Tpo" -c -o lxdream-untile.o `test -f 'pvr2/untile.c' || echo '$(srcdir)/'`pvr2/untile.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lxdream-untile.Tpo" "$(DEPDIR)/lxdream-untile.Po"; else rm -f "$(DEPDIR)/lxdream-untile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pvr2/untile.c' object='lxdream-untile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-untile.o `test -f 'pvr2/untile.c' || echo '$(srcdir)/'`pvr2/untile.c
+
+lxdream-untile.obj: pvr2/untile.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-untile.obj -MD -MP -MF "$(DEPDIR)/lxdream-untile.Tpo" -c -o lxdream-untile.obj `if test -f 'pvr2/untile.c'; then $(CYGPATH_W) 'pvr2/untile.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/untile.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lxdream-untile.Tpo" "$(DEPDIR)/lxdream-untile.Po"; else rm -f "$(DEPDIR)/lxdream-untile.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pvr2/untile.c' object='lxdream-untile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lxdream-untile.obj `if test -f 'pvr2/untile.c'; then $(CYGPATH_W) 'pvr2/untile.c'; else $(CYGPATH_W) '$(srcdir)/pvr2/untile.c'; fi`
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > lxdream-tacore.o: pvr2/tacore.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lxdream_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lxdream-tacore.o -MD -MP -MF "$(DEPDIR)/lxdream-tacore.Tpo" -c -o lxdream-tacore.o `test -f 'pvr2/tacore.c' || echo '$(srcdir)/'`pvr2/tacore.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/lxdream-tacore.Tpo" "$(DEPDIR)/lxdream-tacore.Po"; else rm -f "$(DEPDIR)/lxdream-tacore.Tpo"; exit 1; fi
</pre></div>
<hr /><a name="file4" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>glrender.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/glrender.c
+++ lxdream/src/pvr2/glrender.c
@@ -222,7 +222,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > } while( poly != NULL );
}
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >-<span id="removedchars" style="background-color:#ff9999;font-weight:bolder;" >static </span>void gl_render_poly( struct polygon_struct *poly, gboolean set_depth)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+void gl_render_poly( struct polygon_struct *poly, gboolean set_depth)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > {
if( poly->vertex_count == 0 )
return; /* Culled */
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -390,6 +390,35 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > glDisable( GL_STENCIL_TEST );
}
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+static void gl_render_stencil( )
+{
+ struct tile_segment *segment = pvr2_scene.segment_list;
+ if( display_driver->capabilities.stencil_bits >= 2 ) {
+ glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
+ do {
+ int tilex = SEGMENT_X(segment->control);
+ int tiley = SEGMENT_Y(segment->control);
+
+ uint32_t tile_bounds[4] = { tilex << 5, (tilex+1)<<5, tiley<<5, (tiley+1)<<5 };
+ if( !clip_tile_bounds(tile_bounds, pvr2_scene.bounds) ) {
+ continue; // fully clipped, skip tile
+ }
+
+ /* Clip to the visible part of the tile */
+ glScissor( tile_bounds[0], pvr2_scene.buffer_height-tile_bounds[3],
+ tile_bounds[1]-tile_bounds[0], tile_bounds[3] - tile_bounds[2] );
+ if( IS_TILE_PTR(segment->opaquemod_ptr) &&
+ !IS_EMPTY_TILE_LIST(segment->opaquemod_ptr) ) {
+ gl_render_tilelist_depthonly(segment->opaque_ptr);
+ gl_render_modifier_tilelist(segment->opaquemod_ptr, tile_bounds);
+ }
+ } while( !IS_LAST_SEGMENT(segment++) );
+ glClear( GL_DEPTH_BUFFER_BIT );
+ glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
+ }
+}
+
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > /**
* Render the currently defined scene in pvr2_scene
*/
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -444,6 +473,12 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > glEnable( GL_FOG );
glEnable( GL_TEXTURE_2D );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ gl_render_stencil();
+
+ glDisable( GL_SCISSOR_TEST );
+ untile_list(pvr2_scene.segment_list, 0, 0);
+ glEnable( GL_SCISSOR_TEST );
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > /* Process the segment list */
struct tile_segment *segment = pvr2_scene.segment_list;
do {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -458,19 +493,6 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > /* Clip to the visible part of the tile */
glScissor( tile_bounds[0], pvr2_scene.buffer_height-tile_bounds[3],
tile_bounds[1]-tile_bounds[0], tile_bounds[3] - tile_bounds[2] );
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- if( display_driver->capabilities.stencil_bits >= 2 &&
- IS_TILE_PTR(segment->opaquemod_ptr) &&
- !IS_EMPTY_TILE_LIST(segment->opaquemod_ptr) ) {
- /* Don't do this unless there's actually some shadow polygons */
-
- /* Use colormask instead of drawbuffer for simplicity */
- glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
- gl_render_tilelist_depthonly(segment->opaque_ptr);
- gl_render_modifier_tilelist(segment->opaquemod_ptr, tile_bounds);
- glClear( GL_DEPTH_BUFFER_BIT );
- glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
- }
- gl_render_tilelist(segment->opaque_ptr,TRUE);
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > if( IS_TILE_PTR(segment->punchout_ptr) ) {
glEnable(GL_ALPHA_TEST );
glDepthFunc(GL_GEQUAL);
</pre></div>
<hr /><a name="file5" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>scene.h</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/scene.h
+++ lxdream/src/pvr2/scene.h
@@ -82,6 +82,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define MAX_POLYGONS (87382*2)
#define MAX_POLY_BUFFER_SIZE (MAX_POLYGONS*sizeof(struct polygon_struct))
#define BUF_POLY_MAP_SIZE (4 MB)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#define POLY_NO(poly) (poly - pvr2_scene.poly_array)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
/*************************************************************************/
</pre></div>
<hr /><a name="file6" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/pvr2</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>tileiter.h</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/tileiter.h
+++ lxdream/src/pvr2/tileiter.h
@@ -84,34 +84,36 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > for(;;){
uint32_t entry = *it->ptr;
uint32_t tag = entry >> 29;
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- if( tag == 0x07 ) {
- if( tag & 0x10000000 ) {
- it->ptr = NULL;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ if( tag < 6 ) {
+ if( tag & 0x04 ) {
+ int vertex_count = tag-1; /* 4 == tri, 5 == quad */
+ int vertex_length = (entry >> 21) & 0x07;
+ if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {
+ it->poly_size = 5 + (vertex_length<<1) * vertex_count;
+ } else {
+ it->poly_size = 3 + vertex_length * vertex_count;
+ }
+ it->strip_count = ((entry >> 25) & 0x0F);
+ it->poly_addr = entry & 0x001FFFFF;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > return;
} else {
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));
- it->poly_addr = -1;
- entry = *it->ptr;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ /* Other polygon */
+ it->strip_count = 0;
+ it->poly_addr = entry & 0x001FFFFF;
+ return;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- } else if( tag == 6 ) {
- /* Illegal? Skip */
- it->ptr++;
- } else if( tag & 0x04 ) {
- int vertex_count = tag-1; /* 4 == tri, 5 == quad */
- int vertex_length = (entry >> 21) & 0x07;
- if( (entry & 0x01000000) && (pvr2_scene.shadow_mode == SHADOW_FULL) ) {
- it->poly_size = 5 + (vertex_length<<1) * vertex_count;
- } else {
- it->poly_size = 3 + vertex_length * vertex_count;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ } else {
+ if( tag == 0x07 ) {
+ if( entry & 0x10000000 ) {
+ it->ptr = NULL;
+ return;
+ } else {
+ it->ptr = (uint32_t *)(pvr2_main_ram + (entry&0x007FFFFF));
+ }
+ } else if( tag == 6 ) {
+ /* Illegal? Skip */
+ it->ptr++;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
</pre><pre id="removed" class="diff" style="margin:0; background-color:#ffdddd;" >- it->strip_count = ((entry >> 25) & 0x0F);
- it->poly_addr = entry & 0x001FFFFF;
- return;
- } else {
- /* Other polygon */
- it->strip_count = 0;
- it->poly_addr = entry & 0x001FFFFF;
- return;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
}
}
</pre></div>
<hr /><a name="file7" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span id="added" class="pathname" style="font-family:monospace; float:right; background-color:#ddffdd;" >lxdream/src/pvr2</span><br />
<div id="added" class="fileheader" style="margin-bottom:.5em; background-color:#ddffdd;" ><big><b>untile.c</b></big> <small id="info" style="color: #888888;" >added at e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/pvr2/untile.c
+++ lxdream/src/pvr2/untile.c
@@ -0,0 +1,143 @@
</small></pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+/**
+ * $Id$
+ *
+ * Process the tile + polygon data to extract a list of polygons that can
+ * be rendered directly without tiling.
+ *
+ * Copyright (c) 2010 Nathan Keynes.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <stdlib.h>
+#include "pvr2/pvr2.h"
+#include "pvr2/scene.h"
+#include "pvr2/tileiter.h"
+
+static int sort_polydata( const void *a, const void *b )
+{
+ uint32_t idxa = *(const uint32_t*)a;
+ uint32_t idxb = *(const uint32_t*)b;
+ return pvr2_scene.poly_array[idxa].context - pvr2_scene.poly_array[idxb].context;
+}
+
+gboolean untile_list( struct tile_segment *segment, int pass, int list )
+{
+ int tile_width = pvr2_scene.buffer_width >> 5;
+ int tile_height = pvr2_scene.buffer_height >> 5;
+ tileiter tile_map[tile_width][tile_height];
+
+ memset(tile_map, 0, tile_width*tile_height*sizeof(uint32_t *));
+
+ /* 1. Construct the tile map for the last/pass */
+ int last_x = -1, last_y = -1, tile_pass;
+ do {
+ int tile_x = SEGMENT_X(segment->control);
+ int tile_y = SEGMENT_Y(segment->control);
+ if( last_x == tile_x && last_y == tile_y ) {
+ tile_pass++;
+ } else {
+ tile_pass = 0;
+ last_x = tile_x;
+ last_y = tile_y;
+ }
+
+ if( tile_pass == pass ) {
+ uint32_t ptr = ((uint32_t *)segment)[list+1];
+ if( IS_TILE_PTR(ptr) )
+ TILEITER_BEGIN(tile_map[tile_x][tile_y], ptr);
+ }
+ } while( !IS_LAST_SEGMENT(segment++) );
+
+ /* 2. Extract the polygon list, sorted by appearance. We assume the list
+ * can be sorted by address, which makes this a lot simpler/faster.
+ */
+ uint32_t poly_present[pvr2_scene.poly_count];
+ memset( poly_present, 0, sizeof(poly_present) );
+ unsigned x,y, i, j, poly_count = 0;
+ for( x = 0; x < tile_width; x++ ) {
+ for( y = 0; y < tile_height; y++ ) {
+ tileiter list = tile_map[x][y];
+ while( !TILEITER_DONE(list) ) {
+ struct polygon_struct *poly = pvr2_scene.buf_to_poly_map[TILEITER_POLYADDR(list)];
+ if( poly ) {
+ poly_present[POLY_NO(poly)] = 1;
+ }
+ TILEITER_NEXT(list);
+ }
+ }
+ }
+ /* Collapse array into a set of polygon indexes and then sort it */
+ for( x=0; x<pvr2_scene.poly_count; x++ ) {
+ if( poly_present[x] ) {
+ poly_present[poly_count++] = x;
+ }
+ }
+ qsort(poly_present, poly_count, sizeof(uint32_t), sort_polydata);
+
+ /* 3. Process each polygon in the list. Extract the bounds, and check
+ * each tile in which it should appear - if missing, the poly is clipped
+ * (and we need to construct appropriate bounds).
+ */
+ for( i=0; i<poly_count; i++ ) {
+ struct tile_bounds poly_bounds = {tile_width, tile_height, -1, -1};
+ struct tile_bounds clip_bounds = {0, 0, tile_width, tile_height};
+ struct polygon_struct *poly = &pvr2_scene.poly_array[poly_present[i]];
+ uint32_t poly_addr = poly->context - ((uint32_t *)pvr2_main_ram);
+ do {
+ /* Extract tile bounds for the poly - we assume (since we have the
+ * polygon at all) that it appears correctly in at least one tile.
+ */
+ struct vertex_struct *vert = &pvr2_scene.vertex_array[poly->vertex_index];
+ for( j=0; j<poly->vertex_count; j++ ) {
+ int tx, ty;
+ if( vert[j].x < 0 ) tx = 0;
+ else if( vert[j].x >= pvr2_scene.buffer_width ) tx = tile_width-1;
+ else tx = ((int)vert[j].x)>>5;
+ if( tx < poly_bounds.x1 ) poly_bounds.x1 = tx;
+ if( tx > poly_bounds.x2 ) poly_bounds.x2 = tx;
+ if( vert[j].y < 0 ) ty = 0;
+ else if( vert[j].y >= pvr2_scene.buffer_height ) ty = tile_height-1;
+ else ty = ((int)vert[j].y)>>5;
+ if( ty < poly_bounds.y1 ) poly_bounds.y1 = ty;
+ if( ty > poly_bounds.y2 ) poly_bounds.y2 = ty;
+ }
+ poly = poly->sub_next;
+ } while( poly != NULL );
+ if( poly_bounds.x1 == tile_width ) {
+ continue; /* Polygon has been culled */
+ }
+
+ gl_render_poly(&pvr2_scene.poly_array[poly_present[i]], TRUE);
+#if 0
+ /* Search the tile map for the polygon */
+ for( x = poly_bounds.x1; x <= poly_bounds.x2; x++ ) {
+ for( y = poly_bounds.y1; y <= poly_bounds.y2; y++ ) {
+ tileiter *list = &tile_map[x][y];
+
+
+ /* Skip over earlier entries in the list, if any (can happen if
+ * we culled something, or had an empty polygon
+ */
+ while( !TILEITER_DONE(*list) && TILEITER_POLYADDR(*list) < poly_addr )
+ TILEITER_NEXT(*list);
+ if( TILEITER_POLYADDR(*list) == poly_addr ) {
+ /* Match */
+ } else {
+ /* Clipped */
+ }
+ }
+ }
+#endif
+ }
+}
+
+
</pre></div>
<hr /><a name="file8" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/src/tools</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>genglsl.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/src/tools/genglsl.c
+++ lxdream/src/tools/genglsl.c
@@ -37,10 +37,16 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > FRAGMENT_SHADER = 1
} shader_type_t;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+typedef struct uniform {
+ const char *name;
+ const char *var_name;
+} *uniform_t;
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > typedef struct shader {
shader_type_t type;
const char *name;
char *body;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ GList *uniforms;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > } *shader_t;
typedef struct program {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -86,6 +92,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > shader->name = strdup(g_strstrip(buf+8));
shader->body = malloc(DEF_ALLOC_SIZE);
shader->body[0] = '\0';
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ shader->uniforms = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > current_size = DEF_ALLOC_SIZE;
current_posn = 0;
result->shaders = g_list_append(result->shaders, shader);
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -96,12 +103,14 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > shader->name = strdup(g_strstrip(buf+10));
shader->body = malloc(DEF_ALLOC_SIZE);
shader->body[0] = '\0';
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ shader->uniforms = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > current_size = DEF_ALLOC_SIZE;
current_posn = 0;
result->shaders = g_list_append(result->shaders, shader);
} else if( strncmp( buf, "#program ", 9 ) == 0 ) {
shader = NULL;
program_t program = malloc(sizeof(struct program));
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ assert( program != NULL );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > char *rest = buf+9;
char *equals = strchr(rest, '=');
if( equals == NULL ) {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -115,6 +124,23 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > for(i=0;program->shader_names[i] != NULL; i++ );
if( i > result->max_shaders )
result->max_shaders = i;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ } else if( strncmp( buf, "#uniform ", 9 ) == 0 ) {
+ uniform_t uniform = malloc(sizeof(struct uniform));
+ assert( uniform != NULL );
+ if( shader == NULL ) {
+ fprintf( stderr, "Error: #uniform specified outside of shader: %s\n", buf );
+ exit(2);
+ }
+ char *rest = buf+9;
+ char *equals = strchr(rest, '=');
+ if( equals == NULL ) {
+ fprintf( stderr, "Error: invalid program line %s\n", buf );
+ exit(2);
+ }
+ *equals = '\0';
+ uniform->name = g_strdup(g_strstrip(rest));
+ uniform->var_name = g_strdup(g_strstrip(equals+1));
+ shader->uniforms = g_list_append(shader->uniforms, uniform);
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > } else if( shader != NULL ) {
size_t len = strlen(buf);
if( current_posn + len > current_size ) {
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -149,6 +175,17 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
}
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+static uniform_t find_uniform_name( GList *list, const char *name )
+{
+ GList *ptr;
+ for( ptr = list; ptr != NULL; ptr = ptr->next ) {
+ uniform_t data = (uniform_t)list->data;
+ if( strcmp( data->name, name ) == 0 )
+ return data;
+ }
+ return NULL;
+}
+
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > static void writeHeader( FILE *out, glsldata_t data )
{
fprintf( out, "/*\n * This file automatically generated by genglsl from %s\n */\n", data->filename );
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -168,12 +205,22 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > fprintf( f, "typedef enum {\n" );
const char *last_name = NULL;
int count = 0;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ GList *unique_uniforms;
+ int uniform_count = 0;
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > GList *shader_ptr;
for( shader_ptr = data->shaders; shader_ptr != NULL; shader_ptr = shader_ptr->next ) {
count++;
shader_t shader = (shader_t)shader_ptr->data;
fprintf( f, " %s,\n", shader->name );
last_name = shader->name;
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ GList *uniform_ptr;
+ for( uniform_ptr = shader->uniforms; uniform_ptr != NULL; uniform_ptr = uniform_ptr->next ) {
+ uniform_t uniform = (uniform_t)uniform_ptr->data;
+ if( find_uniform_name(unique_uniforms, uniform->name) == NULL ) {
+ unique_uniforms = g_list_append( unique_uniforms, uniform );
+ uniform_count++;
+ }
+ }
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > }
fprintf( f, "} shader_id;\n\n" );
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -184,6 +231,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > fprintf( f, "#define GLSL_NO_SHADER -1\n\n" );
fprintf( f, "#define GLSL_VERTEX_SHADER 1\n" );
fprintf( f, "#define GLSL_FRAGMENT_SHADER 2\n" );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ fprintf( f, "#define GLSL_NUM_UNIFORMS %d\n", uniform_count );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" >
fprintf( f, "typedef enum {\n" );
last_name = NULL;
</pre></div>
<hr /><a name="file9" /><div class="file" style="border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;" >
<span class="pathname" style="font-family:monospace; float:right;" >lxdream/test</span><br />
<div class="fileheader" style="margin-bottom:.5em;" ><big><b>pvr.c</b></big> <small id="info" style="color: #888888;" >1038800cecd8 -> e1848ca9b5b1</small></div>
<pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >--- lxdream/test/pvr.c
+++ lxdream/test/pvr.c
@@ -42,6 +42,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define RENDER_ADDR2 (PVR_BASE+0x064)
#define RENDER_HCLIP (PVR_BASE+0x068)
#define RENDER_VCLIP (PVR_BASE+0x06C)
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+#define RENDER_SHADOW (PVR_BASE+0x074)
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > #define RENDER_NEARCLIP (PVR_BASE+0x078)
#define RENDER_FARCLIP (PVR_BASE+0x088)
#define RENDER_BGPLANE (PVR_BASE+0x08C)
</pre><pre class="diff" style="margin:0;" ><small id="info" style="color: #888888;" >@@ -252,6 +253,7 @@
</small></pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > long_write( RENDER_POLYBASE, config->polybuf );
long_write( RENDER_TILEBASE, config->tilemap );
long_write( RENDER_ADDR1, config->render_addr );
</pre><pre id="added" class="diff" style="margin:0; background-color:#ddffdd;" >+ long_write( RENDER_SHADOW, 0x140 );
</pre><pre id="context" class="diff" style="margin:0; background-color:#eeeeee;" > long_write( RENDER_SIZE, modulo >> 3 );
long_write( RENDER_ADDR2, config->render_addr + modulo ); /* Not used? */
long_write( RENDER_HCLIP, (config->width - 1) << 16 );
</pre></div>
<center><small>Chaos Theory</small></center>
</div></body></html>