<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">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 cite="mid:28Wp.1OaW.729EsaRLSRG.1KlL9E@seznam.cz"
type="cite">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 class="moz-txt-link-rfc2396E" href="mailto:jaroslav.buchta@hascomp.cz"><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 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>