<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Igor Ławicki's Weblog</title>
	<atom:link href="http://ilawicki.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ilawicki.wordpress.com</link>
	<description>0xCAFEBABE</description>
	<lastBuildDate>Sun, 06 Dec 2009 14:43:15 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ilawicki.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Igor Ławicki's Weblog</title>
		<link>http://ilawicki.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ilawicki.wordpress.com/osd.xml" title="Igor Ławicki&#039;s Weblog" />
	<atom:link rel='hub' href='http://ilawicki.wordpress.com/?pushpress=hub'/>
		<item>
		<title>jSFML</title>
		<link>http://ilawicki.wordpress.com/2009/11/15/jsfml/</link>
		<comments>http://ilawicki.wordpress.com/2009/11/15/jsfml/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 20:55:59 +0000</pubDate>
		<dc:creator>ilawicki</dc:creator>
				<category><![CDATA[JNI]]></category>
		<category><![CDATA[jSFML]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[SFML]]></category>

		<guid isPermaLink="false">http://ilawicki.wordpress.com/?p=12</guid>
		<description><![CDATA[SFML (Simple Fast Multimedia Library) to prosta i przyjemna w użyciu biblioteka dzięki której można zrobić naprawdę dużo. Można przy jej użyciu tworzyć okna i nimi zarządzać, rysować w nich prymitywy lub obrazki, używać efektów post-fx opartych na shaderach, odtwarzać dźwięki, tworzyć aplikacje wielowątkowe i sieciowe. Biblioteka jest w 100% przenośna. Jest ona napisana w [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=12&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SFML (Simple Fast Multimedia Library) to prosta i przyjemna w użyciu biblioteka dzięki której można zrobić naprawdę dużo. Można przy jej użyciu tworzyć okna i nimi zarządzać, rysować w nich prymitywy lub obrazki, używać efektów post-fx opartych na shaderach, odtwarzać dźwięki, tworzyć aplikacje wielowątkowe i sieciowe. Biblioteka jest w 100% przenośna. Jest ona napisana w C++ w sposób jak najzupełniej obiektowy. Korzystać z niej można pisząc w C, C++, Pythonie, D, Ruby oraz C#. Nie istnieje niestety wraper dla języka Java, w którym piszę na co dzień i który zwyczajnie lubię. Zainteresowałem się więc wplataniem natywnych rozwiązań do języka Java. W ten sposób odkryłem JNI (Java Native Interface), który pozwala na używanie natywnych bibliotek w klasach Java poprzez interfejs napisany w C. Okazało się to o wiele prostsze niż myślałem co skłoniło mnie do rozpoczęcia prac nad jSFML, czyli wraperem natywnego SFML dla języka Java. Jak na razie nie można wiele zrobić w wersji dla Java, ale to może dla tego, że prace zacząłem wczoraj <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Na razie można stworzyć okno, poustawiać mu parametry, używać generatora liczb pseudolosowych i timera. Po niżej dwie linijki robiące to samo; pierwsza C++, druga Java:<br />
sf::Window App(sf::VideoMode(800, 600, 32), &#8222;SFML Window&#8221;);<br />
Window window = new Window(new VideoMode(800, 600, 32), &#8222;jSFML&#8221;);</p>
<p>Każdemu obiektowi w C++ towarzyszy obiekt Java, który w polu typu int o nazwie m_nativePointer trzyma wartość zwracaną przez &#8222;new&#8221; po stronie natywnej. W ten sposób odwołując się z poziomu Java do metod interfejsu C podając jako jeden z parametrów m_nativePointer można &#8216;dobrać się&#8217; do odpowiedniego obiektu i wykonać na min pożądaną akcję. Czas życia obiektu po stronie natywnej zależy od czasu życia obiektu w Java, to znaczy, że kiedy niszczony jest obiekt Java wywoływane jest &#8222;delete&#8221; na wartości m_nativePointer zrzutowanej na odpowiedni typ wskaźnika w funkcji natywnego interfejsu. Odpowiednikiem destruktorów w języku Java jest metoda  java.lang.Object.finalize(), która wywoływana jest w momencie niszczenia obiektu przez Garbage Collector (po naszemu&#8221;odśmiecacza&#8221; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) i właśnie w tym momencie wywołuje się z poziomu Java metoda nDestructor(int) (taką nazwę przyjąłem; wszystkie metody natywnego interfejsu mają przedrostek &#8216;n&#8217;). Jak wygląda kod zaprezentuje na przykładzie tworzenia obiektu typu Window. Przepraszam za formatowanie kodu, ale wordpress nie chce ze mną współpracować; jak tylko się z nim uporam poprawie posta.</p>
<p>W klasie Window.java jest deklaracja funkcji natywnego interfejsu:<br />
private native int nConstructor(int ptr_VideoMode, String title, int style, int ptr_WindowSettings);</p>
<p>Metoda nConstructor użyta jest w konstruktorze Java:</p>
<pre>
public Window(VideoMode mode, String title)
{
    m_nativePointer = nConstructor(mode.getNativePointer(), title, Style.Resize|Style.Close, new WindowSettings().getNativePointer());
}
</pre>
<p>nConstructor jako funkcja natywnego interfejsu:</p>
<pre>
JNIEXPORT jint JNICALL Java_SFML_Window_Window_nConstructor__ILjava_lang_String_2II (JNIEnv *env, jobject, jint ptr_VideoMode, jstring title, jint style, jint ptr_WindowSettings)
{
    jboolean isCopy = false;
    const char* cc_title = env-&gt;GetStringUTFChars(title, &amp;isCopy);
    jint obj_ptr = (jint)( new sf::Window(
        *((sf::VideoMode*)ptr_VideoMode),
        cc_title,
        style,
        *((sf::WindowSettings*)ptr_WindowSettings) ));
    env-&gt;ReleaseStringUTFChars(title, cc_title);
    return obj_ptr;
}
</pre>
<p>Ogólnie rzecz biorąc &#8211; pierwsze koty za płoty. Wiem jak wygląda komunikacja poprzez JNI i już powoli coś zaczyna działać. Następną rzeczą jaką się zajmę będzie klasa sf::Event i obsługa tychże zdarzeń. Kiedy uporam się z tym (a podejrzewam, że nie będzie łatwo, gdyż jednym z pól klasy sf::Event jest unia mająca w sobie 8 strktur) zajme się sf::RenderWindow, sf::Image oraz sf::Sprite. Kiedy i to uda mi się skończyć opublikuję pierwsza wersję biblioteki jSFML.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilawicki.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilawicki.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilawicki.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=12&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilawicki.wordpress.com/2009/11/15/jsfml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5f67c47c1ef8820f09b94a2ac2a5d988?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ilawicki</media:title>
		</media:content>
	</item>
		<item>
		<title>Się porobiło</title>
		<link>http://ilawicki.wordpress.com/2008/12/07/sie-porobilo/</link>
		<comments>http://ilawicki.wordpress.com/2008/12/07/sie-porobilo/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 16:58:32 +0000</pubDate>
		<dc:creator>ilawicki</dc:creator>
				<category><![CDATA[rozne]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[osobiste]]></category>
		<category><![CDATA[praca]]></category>

		<guid isPermaLink="false">http://ilawicki.wordpress.com/?p=6</guid>
		<description><![CDATA[Było nie było, jest jak jest. A jak jest? Nie ciekawie. Straciłem prace jako jeden z wielu w grupowym zwolnieniu i się obijam na bezrobociu. No może nie do końca obijam, ale było nie było, pracy nie mam. Jako, że umiem nieco w J2ME postanowiłem napisać kilka małych gier właśnie w J2ME, aby służyły niejako [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=6&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Było nie było, jest jak jest. A jak jest? Nie ciekawie. Straciłem prace jako jeden z wielu w grupowym zwolnieniu i się obijam na bezrobociu. No może nie do końca obijam, ale było nie było, pracy nie mam. Jako, że umiem nieco w J2ME postanowiłem napisać kilka małych gier właśnie w J2ME, aby służyły niejako za moje portfolio. I w ten oto sposób, w dość krótkim czasie napisałem Sapera i SameGame w J2ME. W pełni działające gry, które można sprawdzić w działaniu na <a title="http://solgar.cba.pl" href="http://solgar.cba.pl" target="_blank">www.solgar.cba.pl</a> poprzez aplet-emulator komórki. Można tam też sprawdzić w działaniu inny midlecik &#8211; RFRotate. Jest to midlet, w którym rysuje sie wzorki kręcącymi sie w kółko ramionami (tez napisany niedawno). Ostatnio popełniłem również midlet o nazwie MBF &#8211; Mobile Brain Fucker &#8211; czyli interpreter języka BrainFuck na komórkę :]. Także jak widać nie nudzę się, a właściwie to uzbrajam się w coś, co mogę dołączyć do swojego CV starając się o pracę.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilawicki.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilawicki.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilawicki.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=6&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilawicki.wordpress.com/2008/12/07/sie-porobilo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5f67c47c1ef8820f09b94a2ac2a5d988?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ilawicki</media:title>
		</media:content>
	</item>
		<item>
		<title>World compo</title>
		<link>http://ilawicki.wordpress.com/2008/06/25/world-compo/</link>
		<comments>http://ilawicki.wordpress.com/2008/06/25/world-compo/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 23:45:19 +0000</pubDate>
		<dc:creator>ilawicki</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ilawicki.wordpress.com/?p=4</guid>
		<description><![CDATA[World compo juz tuz, tuz! Zamierzam wziac w nim udzial i oczywiscie wygrac :] Strona World compo: tutaj<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=4&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>World compo juz tuz, tuz! Zamierzam wziac w nim udzial i oczywiscie wygrac :]</p>
<p>Strona World compo: <a href="http://worldcompo.gamedev.pl/" target="_blank">tutaj</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ilawicki.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ilawicki.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilawicki.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilawicki.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilawicki.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=4&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilawicki.wordpress.com/2008/06/25/world-compo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5f67c47c1ef8820f09b94a2ac2a5d988?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ilawicki</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://ilawicki.wordpress.com/2008/01/23/hello-world/</link>
		<comments>http://ilawicki.wordpress.com/2008/01/23/hello-world/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 20:50:44 +0000</pubDate>
		<dc:creator>ilawicki</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[takie tam]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[System.out.println(&#8222;Hello world!&#8221;);<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=1&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>System.out.println(&#8222;Hello world!&#8221;);</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ilawicki.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ilawicki.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ilawicki.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ilawicki.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ilawicki.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ilawicki.wordpress.com&amp;blog=2599787&amp;post=1&amp;subd=ilawicki&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ilawicki.wordpress.com/2008/01/23/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5f67c47c1ef8820f09b94a2ac2a5d988?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ilawicki</media:title>
		</media:content>
	</item>
	</channel>
</rss>
