<html>
<head>
<meta content="text/html; charset=iso-8859-2"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">OK, diky, takze zkusim prozkoumat
OpenGL.<br>
To vykreslovani radku po skupinach je jasne, tohle bylo jen pro
test rychlosti.<br>
Ja to mel udelane v C++ kdysi davno pro jednu aplikaci, pomaleji
ale docela to stihalo pres bitmapy a winapi jeste v WinNT4. V to
C# mi docela chybi nejaka funkce typu Move misto Copy primo nad
bufferem...<br>
<br>
<br>
Dne 19. 1. 2015 v 20:27 Galloth napsal(a):<br>
</div>
<blockquote
cite="mid:CAG5PC5d1xeNYBzho+fksWA6rXe=Voz36juHr9p04vEvS2bO4hw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>OpenGL je otevřená alternativa k DirectX. Obojí umí jak 2D
tak 3D. Snazit se udelat 1000radku/s je spatne, protoze
monitor Vám stejně bude vykreslovat par desitek obrazků za
sekundu. Grafické knihovny (jak OpenGL tak DirectX) Vám
umožní přístup do framebufferu, takže tam můžete řádky
přidávat podle libosti a pak je naráz vykreslit. Doporučoval
bych například vykreslovat po vložení každého 20 řádku (což
bude dělat 50framů za sekundu) a tím se vyhnout posouvání
bitmapy pro každý řádek (prostě vždy poskočí o 20 řádků).<br>
<br>
</div>
Honza<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">Dne 19. ledna 2015 19:55 Jaroslav
Buchta <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>></span>
napsal(a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>No a to bych prave potreboval nakopnout, ktere
knihony by se k tomu daly pouzit - zas to neni uplne
stezejni a nerad bych se ucil neco na urovni
programatora her.<br>
Neco jsem nasel o DirectX, ale to je asi docela slozity
moloch, nevim jestli OpenGL, ale to je spis 3D? Radsi se
nejdriv zeptam nez budu vyslapavat slepe cesticky ;-)<br>
<br>
Dne 19. 1. 2015 v 19:51 Pavel Hudeček napsal(a):<br>
</div>
<blockquote type="cite">
<div>
<div class="h5">Je potřeba použít hw akceleraci. Místo
kopírování celé bitmapy o řádek dál prostě jen říct
nějaké knihovní funkci, aby řekla grafice, že má
celý obsah okna posunout o řádek a pak tam
nakopírovat jen ten nový řádek. <br>
<br>
PH<br>
<br>
<p>Od: Jaroslav Buchta <a moz-do-not-send="true"
href="mailto:jaroslav.buchta@hascomp.cz"
target="_blank"><jaroslav.buchta@hascomp.cz></a><br>
</p>
<blockquote>Jakym smerem se vydat? Potrebuju v
podstate rychle posouvat radky v okne <br>
a pridavat nove radky, je to pro vizualizaci dat z
radkove kamery.<br>
Tak 1000 radku/s po 512 px by bylo ideal. Uvedeny
kod zvladne tak 40 <br>
(512x500 pixelu) takze to chce vice nez radove
zlepseni vykonu.<br>
<br>
Zatim jsem udelal tento hruby pokus a tudy cesta
asi nevede (da se to <br>
urcite jeste optimalizovat ale je to v principu
same kopirovani velkeho <br>
pole)<br>
<br>
Existuje nejaka lepsi metoda, jak rychle
periodicky zobrazovat v okne <br>
aktualni obraz ktery je jako pole pixelu? Ale zas
univerzalni, aby to <br>
nebylo vazane na nejakou konkretni graf. kartu,
cpu atp.<br>
<br>
private unsafe void
backgroundWorker1_DoWork(object sender, <br>
DoWorkEventArgs e)<br>
{<br>
<br>
while (!bwFin)<br>
{<br>
<br>
BitmapData bmd = bmp.LockBits(new Rectangle(0, 0,
<br>
bmp.Width, bmp.Height), ImageLockMode.WriteOnly,
bmp.PixelFormat);<br>
<br>
IntPtr ptr = bmd.Scan0;<br>
<br>
int lnBytes = Math.Abs(bmd.Stride);<br>
int bytes = lnBytes * bmp.Height;<br>
if (rgbValues == null)<br>
{<br>
rgbValues = new byte[bytes];<br>
<br>
}<br>
else<br>
{<br>
byte[] ba = rgbValues.Skip(lnBytes).ToArray();<br>
rgbValues = new byte[bytes];<br>
ba.CopyTo(rgbValues, 0);<br>
}<br>
<br>
for (int y = bmp.Height-1; y < bmp.Height; y++)<br>
{<br>
byte[] ln = new byte[bmp.Width * 4];<br>
for (int x = 0; x < bmp.Width; x++)<br>
{<br>
byte l = byte((x + y + bmOfs) % 256);<br>
ln[x * 4 + 0] = l;<br>
ln[x * 4 + 1] = l;<br>
ln[x * 4 + 2] = l;<br>
ln[x * 4 + 3] = 255;<br>
}<br>
ln.CopyTo(rgbValues, lnBytes * (bmp.Height - 1));<br>
}<br>
<br>
System.Runtime.InteropServices.Marshal.Copy(rgbValues,
0, ptr, <br>
bmp.Height * lnBytes);<br>
<br>
bmp.UnlockBits(bmd);<br>
<br>
bmOfs++;<br>
if (bmOfs > bmp.Height) bmOfs = 0;<br>
<br>
pictureBox1.Image = bmp.Clone() as Image;<br>
}<br>
pictureBox1.Image = null;<br>
}<br>
</blockquote>
<br>
<fieldset></fieldset>
<br>
</div>
</div>
<span class="">
<pre>_______________________________________________
HW-list mailing list - sponsored by <a moz-do-not-send="true" href="http://www.HW.cz" target="_blank">www.HW.cz</a>
<a moz-do-not-send="true" href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<a moz-do-not-send="true" href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</span></blockquote>
<br>
<br>
<br>
<hr
style="border:none;color:#909090;background-color:#b0b0b0;min-height:1px;width:99%">
<table style="border-collapse:collapse;border:none">
<tbody>
<tr>
<td style="border:none;padding:0px 15px 0px 8px"> <a
moz-do-not-send="true"
href="http://www.avast.com/" target="_blank"> <img
moz-do-not-send="true"
src="http://static.avast.com/emails/avast-mail-stamp.png"
border="0"> </a> </td>
<td>
<p
style="color:#3d4d5a;font-family:"Calibri","Verdana","Arial","Helvetica";font-size:12pt"><span
class=""> This email has been checked for
viruses by Avast antivirus software. <br>
</span><a moz-do-not-send="true"
href="http://www.avast.com/" target="_blank">www.avast.com</a>
</p>
</td>
</tr>
</tbody>
</table>
<br>
</div>
<br>
_______________________________________________<br>
HW-list mailing list - sponsored by <a
moz-do-not-send="true" href="http://www.HW.cz"
target="_blank">www.HW.cz</a><br>
<a moz-do-not-send="true" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a moz-do-not-send="true"
href="http://list.hw.cz/mailman/listinfo/hw-list"
target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br>
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
<tr>
<td style='border:none;padding:0px 15px 0px 8px'>
<a href="http://www.avast.com/">
<img border=0 src="http://static.avast.com/emails/avast-mail-stamp.png" />
</a>
</td>
<td>
<p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
This email has been checked for viruses by Avast antivirus software.
<br><a href="http://www.avast.com/">www.avast.com</a>
</p>
</td>
</tr>
</table>
<br />
</body>
</html>