<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - B3D - Direct2D</title>
		<link>https://www.blitzforum.de/worklogs/494/</link>
		<description>Worklog von Chester</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Tue, 28 Feb 2012 19:40:43 +0100</pubDate>
		<lastBuildDate>Tue, 28 Feb 2012 19:40:43 +0100</lastBuildDate>

		<item>
			<title>Tadäää - ImageBuffer</title>
			<link>https://www.blitzforum.de/worklogs/494/#3488</link>
			<guid>https://www.blitzforum.de/worklogs/494/#3488</guid>
			<author>Chester</author>
			<description>Eine H&amp;uuml;rde ist geschafft. Absofort sind Bildmanipulationen &amp;uuml;ber ImageBuffer m&amp;ouml;glich.&lt;br /&gt;&lt;br /&gt;Ein Bild wird ganz normal mit CreateImage(breite, h&amp;ouml;he) erstellt und mit SetBuffer kann zwischen ImageBuffer und BackBuffer gewechselt werden. Wie das normale Rendern auch, m&amp;uuml;ssen die Zeichenbefehle von BeginDraw() und EndDraw() umgeben sein. Anschlie&amp;szlig;end ist noch ein UpdateImage Aufruf notwendig. Ist zwar jetzt ein bisschen mehr, als man von B3D gew&amp;ouml;hnt ist, funktioniert aber im Grunde genauso einfach.&lt;br /&gt;&lt;br /&gt;In folgendem Beispielcode wird ein 50x50 Bild erstellt. In Echtzeit wird nun das Bild manipuliert, es wird ein wei&amp;szlig;er Rahmen gezeichnet und innen drin, wird die FPS angezeigt. Die Zeit f&amp;uuml;r die Bildmanipulation ist &amp;lt;1 ms. Aber hier habe ich noch nicht wirklich getestet, deshalb die Zeit bitte mit Vorsicht genie&amp;szlig;en.&lt;br /&gt;&lt;br /&gt;Beispielcode:&lt;br /&gt;[syntax=&amp;quot;bb&amp;quot;]Graphics 800,600,32,2&lt;br /&gt;&lt;br /&gt;Initialize()&lt;br /&gt;&lt;br /&gt;white=CreateBrush(255,255,255,255)&lt;br /&gt;&lt;br /&gt;font=LoadFont (&amp;quot;Arial&amp;quot;,18)&lt;br /&gt;SetFont font&lt;br /&gt;&lt;br /&gt;img=CreateImage(50,50)&lt;br /&gt;&lt;br /&gt;SetBuffer BackBuffer()&lt;br /&gt;&lt;br /&gt;While (Render() And KeyHit(1)=0)&lt;br /&gt;	&lt;br /&gt;  ms=MilliSecs()&lt;br /&gt;&lt;br /&gt;	SetBuffer ImageBuffer(img)&lt;br /&gt;&lt;br /&gt;	BeginDraw()&lt;br /&gt;		Cls()&lt;br /&gt;		SelectBrush white&lt;br /&gt;			&lt;br /&gt;		DrawRect (0,0,50,50,0) ; Rahmen&lt;br /&gt;		DrawText 10,10,fps&lt;br /&gt;	EndDraw()&lt;br /&gt;	&lt;br /&gt;	UpdateImage (img)&lt;br /&gt;&lt;br /&gt;	SetBuffer BackBuffer()&lt;br /&gt;	&lt;br /&gt;	ms2=MilliSecs()-ms&lt;br /&gt;&lt;br /&gt;	BeginDraw()&lt;br /&gt;		SelectBrush white&lt;br /&gt;		Cls()&lt;br /&gt;&lt;br /&gt;		DrawImage img, MouseX(),MouseY()&lt;br /&gt;		DrawText 10,10,&amp;quot;Zeit f&amp;uuml;r Bildmanipulation: &amp;quot;+ms2&lt;br /&gt;	EndDraw()&lt;br /&gt;&lt;br /&gt;	fps=1000/(MilliSecs()-ms)&lt;br /&gt;Wend&lt;br /&gt;WaitKey()&lt;br /&gt;clean()&lt;br /&gt;[/syntax]&lt;br /&gt;&lt;br /&gt;F&amp;uuml;r die, die es interessiert: Die ImageBuffer sind einfach nur eigene RenderTargets. Direct2D bietet hier ganz gute M&amp;ouml;glichkeiten.</description>
			<pubDate>Tue, 28 Feb 2012 19:40:43 +0100</pubDate>
		</item>

		<item>
			<title> </title>
			<link>https://www.blitzforum.de/worklogs/494/#3484</link>
			<guid>https://www.blitzforum.de/worklogs/494/#3484</guid>
			<author>Chester</author>
			<description>Da mein Irrlicht Port nie fertig wurde, m&amp;ouml;chte ich das mal wieder gutmachen und zumindest eine funktionierende 2D Version zur Verf&amp;uuml;gung stellen.  Die soll diesmal innerhalb den n&amp;auml;chsten 4 Wochen (Semesterferien) auch fertig werden. &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Hier habe mich nun aber von Irrlicht komplett entfernt und arbeite direkt mit Direct2D. &lt;br /&gt;Direct2D ist eine Komponente von DirectX10.1, l&amp;auml;uft aber auch auf DirectX 9 Hardware. Mehr dazu hier: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/dd370987%28v=vs.85%29.aspx&quot; target=&quot;_blank&quot;&gt;Direct2D &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dies hat den Vorteil, dass ich von Irrlicht unabh&amp;auml;ngig bin, auf der aktuellen Technik aufbauen kann und mir umst&amp;auml;ndliche Strukturen von Irrlicht spare. Nachteil ist hierbei, dass (vorerst) eine identische Struktur zu B3D nicht m&amp;ouml;glich ist.&lt;br /&gt;&lt;br /&gt;Beispiel:&lt;br /&gt;[syntax=&amp;quot;bb&amp;quot;]Graphics 800,600,32,2&lt;br /&gt;&lt;br /&gt;Initialize()&lt;br /&gt;&lt;br /&gt;testBrush=CreateBrush(5,123,242,150)&lt;br /&gt;&lt;br /&gt;testImg = LoadImage(&amp;quot;test.bmp&amp;quot;)&lt;br /&gt;testFont=LoadFont (&amp;quot;Arial&amp;quot;,18)&lt;br /&gt;SetFont testFont&lt;br /&gt;&lt;br /&gt;While (Render() And KeyHit(1)=0)&lt;br /&gt;	BeginDraw()&lt;br /&gt;		&lt;br /&gt;&lt;br /&gt;		Draw2DImage img, MouseX(), MouseY();&lt;br /&gt;&lt;br /&gt;		SelectBrush testBrush&lt;br /&gt;		DrawLine  10,10, 500, 500, 1&lt;br /&gt;		&lt;br /&gt;	EndDraw()&lt;br /&gt;Wend&lt;br /&gt;&lt;br /&gt;Clean()&lt;br /&gt;End()[/syntax]&lt;br /&gt;&lt;br /&gt;Was hier nat&amp;uuml;rlich gleich auff&amp;auml;llt, sind die Brushs. Diese sind das Pendant zu dem Blitzinternen Color.&lt;br /&gt;&lt;br /&gt;Statt&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('0')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('0')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox0&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('0');&quot;&gt;Color 255,0,255&lt;/div&gt;&lt;br /&gt;muss der Brush vorher erstellt werden, mit SetBrush setzt man den aktuellen Brush fest, der f&amp;uuml;r Text, Line, Oval, Rect und co. gilt. (an dieser Stelle f&amp;auml;llt mir gerade auf, dass Plot noch fehlt) &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('1')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('1')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox1&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('1');&quot;&gt;brush = CreateBrush &amp;#40; 255,0,255, 255&amp;#41; ; r,g,b, alpha&lt;br /&gt;;---&lt;br /&gt;SetBrush brush&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Was bisher alles geht:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Initialize()&lt;br /&gt;&lt;li&gt;Clean()&lt;br /&gt;&lt;li&gt;Render()&lt;br /&gt;&lt;li&gt;BeginDraw()&lt;br /&gt;&lt;li&gt;EndDraw()&lt;br /&gt;&lt;li&gt;ClsColor r%,g%,b%&lt;br /&gt;&lt;br /&gt;&lt;li&gt;DrawLine  x%,y%, x2%, y2%, stroke#&lt;br /&gt;&lt;li&gt;DrawRect  x%,y%, width%, height%, filled%&lt;br /&gt;&lt;li&gt;DrawOval  x%,y%, width%, height%, filled%&lt;br /&gt;&lt;li&gt;DrawImage my_img, x%, y%&lt;br /&gt;&lt;li&gt;DrawText x%, y%, &amp;quot;Mein Text&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;CreateBrush( r%, g%, b%, a%)&lt;br /&gt;&lt;li&gt;LoadImage( &amp;quot;Mein Bild.bmp&amp;quot; )&lt;br /&gt;&lt;li&gt;LoadFont ( &amp;quot;Font&amp;quot;, Size% )&lt;br /&gt;&lt;li&gt;SetFont my_font&lt;br /&gt;&lt;li&gt;SetBrush my_brush&lt;/ul&gt;</description>
			<pubDate>Fri, 24 Feb 2012 14:50:33 +0100</pubDate>
		</item>


	</channel>
</rss>
