{"id":1707,"date":"2015-01-21T15:43:14","date_gmt":"2015-01-21T13:43:14","guid":{"rendered":"http:\/\/wordpress.wvs-berlin.de\/?p=1707"},"modified":"2015-01-21T17:28:20","modified_gmt":"2015-01-21T15:28:20","slug":"21-1-2015","status":"publish","type":"post","link":"https:\/\/wordpress.wvs-berlin.de\/?p=1707","title":{"rendered":"21.1.2015"},"content":{"rendered":"<p>Morten ist da. Wir reden \u00fcber Windows ultimate. Und Ableton.<\/p>\n<p>Jetzt sieht der Code so aus:<\/p>\n<pre style=\"font-size: 0.7em;\">#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &lt;assert.h&gt;\r\n#include &lt;SDL\/SDL.h&gt;\r\n\r\ntypedef struct _Color Color;\r\nstruct _Color \r\n{\r\n\u00a0\u00a0\u00a0 unsigned char r, g, b;\r\n};\r\n\r\ntypedef struct _Point Point;\r\nstruct _Point\r\n{\r\n\u00a0\u00a0\u00a0 int x, y;\r\n};\r\n\r\nSDL_Surface *screen;\r\n\r\nvoid\r\ndrawPixel(int x, int y, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 *((Uint32*)((char*)screen-&gt;pixels + x*screen-&gt;format-&gt;BytesPerPixel + y*screen-&gt;pitch)) = SDL_MapRGB(screen-&gt;format, c.r, c.g, c.b);\r\n}\r\n\r\nvoid\r\ndrawLine(Point p1, Point p2, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 int dx, dy;\r\n\u00a0\u00a0\u00a0 int incx, incy;\r\n\u00a0\u00a0\u00a0 float m;\r\n\u00a0\u00a0\u00a0 dx = p2.x - p1.x;\r\n\u00a0\u00a0\u00a0 dy = p2.y - p1.y;\r\n\u00a0\u00a0\u00a0 incx = dx&gt;0 ? 1 : -1;\r\n\u00a0\u00a0\u00a0 incy = dy&gt;0 ? 1 : -1;\r\n\u00a0\u00a0\u00a0 if(dx == 0){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(y = p1.y; y != p2.y; y += incy)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(p1.x, y, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return;\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 if(abs(dx)&gt;abs(dy)){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m = (float)dy\/(float)abs(dx);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y = p1.y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(x = p1.x; x != p2.x; x += incx){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(x, y+0.5f, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 y += m;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }else{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int y;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 m = (float)dx\/(float)abs(dy);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x = p1.x;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for(y = p1.y; y != p2.y; y += incy){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawPixel(x+0.5f, y, c);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 x += m;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n\r\nvoid\r\ndrawTriWire(Point p1, Point p2, Point p3, Color c)\r\n{\r\n\u00a0\u00a0\u00a0 drawLine(p1, p2, c);\r\n\u00a0\u00a0\u00a0 drawLine(p2, p3, c);\r\n\u00a0\u00a0\u00a0 drawLine(p3, p1, c);\r\n}\r\n\r\nvoid\r\ndrawRect(Point p1, Point p2, Color rgb)\r\n{\r\n\u00a0\u00a0\u00a0 int i, j;\r\n\u00a0 \u00a0\u00a0\u00a0 \u00a0for(i = p1.x; i &lt; p2.x; i++)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for(j = p1.y; j &lt; p2.y; j++)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0drawPixel(i, j, rgb);\r\n}\r\n\r\nvoid\r\ndraw(void)\r\n{\r\n\u00a0\u00a0\u00a0 drawRect((Point){40,40}, (Point){50,50}, (Color) {255, 0, 255});\r\n\u00a0\u00a0\u00a0 drawRect((Point){80,40}, (Point){90,50}, (Color) {255, 0, 255});\r\n\u00a0\u00a0\u00a0 drawRect((Point){62,60}, (Point){68,80}, (Color) {10, 123, 233});\r\n\u00a0\u00a0\u00a0 drawRect((Point){40,95}, (Point){90,100}, (Color) {123, 233, 10});\r\n\u00a0\u00a0 \u00a0\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){0, 0}, (Point){50, 30});\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){0, 0}, (Point){30, 50});\r\n\/\/\u00a0\u00a0\u00a0 drawLine((Point){50, 0}, (Point){50, 50});\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 drawTriWire((Point){10,10}, (Point){100, 70}, (Point){30, 150}, (Color){255, 255, 255});\r\n}\r\n\r\nint\r\nmain(void)\r\n{\r\n\u00a0\u00a0 \u00a0int running = 1;\r\n\u00a0\u00a0 \u00a0int w = 640;\r\n\u00a0\u00a0 \u00a0int h = 480;\r\n\u00a0\u00a0 \u00a0SDL_Event event;\r\n\r\n\u00a0\u00a0 \u00a0SDL_Init(SDL_INIT_VIDEO);\r\n\r\n\u00a0\u00a0 \u00a0screen = SDL_SetVideoMode(w, h, 32, SDL_HWSURFACE);\r\n\r\n\u00a0\u00a0 \u00a0while(running){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while(SDL_PollEvent(&amp;event))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if(event.type == SDL_QUIT)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0running = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_LockSurface(screen);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0draw();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_UnlockSurface(screen);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SDL_UpdateRect(screen, 0, 0, 0, 0);\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0SDL_Quit();\r\n\u00a0\u00a0 \u00a0return 0;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Und das Resutlat so:<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/c2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1709\" src=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/c2-300x241.png\" alt=\"c2\" width=\"300\" height=\"241\" srcset=\"https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/c2-300x241.png 300w, https:\/\/wordpress.wvs-berlin.de\/wp-content\/uploads\/c2.png 642w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>N\u00e4chste Mal dann Ausf\u00fcllen von Dreiecken, 3D-Rotation und Kreise &#8230;;<\/p>\n<p>Morten bastelt daran rum, wie ein Spiel unter Windows startet &#8230;;<\/p>\n<p>Diesen Freitag ist noch einmal, dann zwei Wochen Pause.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Morten ist da. Wir reden \u00fcber Windows ultimate. Und Ableton. Jetzt sieht der Code so aus: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;assert.h&gt; #include &lt;SDL\/SDL.h&gt; typedef struct _Color Color; struct _Color { \u00a0\u00a0\u00a0 unsigned char r, g, b; }; typedef struct _Point Point; struct _Point { \u00a0\u00a0\u00a0 int x, y; }; SDL_Surface *screen; void drawPixel(int x, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,22,17,31,3,7,8],"tags":[],"class_list":["post-1707","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-lernserver","category-schulnetzwerk","category-sdl","category-tagesberichte","category-termine","category-tisch"],"_links":{"self":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1707"}],"version-history":[{"count":3,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1707\/revisions"}],"predecessor-version":[{"id":1711,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=\/wp\/v2\/posts\/1707\/revisions\/1711"}],"wp:attachment":[{"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.wvs-berlin.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}