OSDN Git Service

SDL_CreateSoftwareRenderer サンプルコードを追加
authormaruhiro <maruhiro@bridge.ocn.ne.jp>
Sun, 31 May 2015 11:10:56 +0000 (20:10 +0900)
committermaruhiro <maruhiro@bridge.ocn.ne.jp>
Sun, 31 May 2015 11:10:56 +0000 (20:10 +0900)
SDL_CreateSoftwareRenderer.html

index ee04403..e75f088 100644 (file)
 <h2>\96ß\82è\92l</h2>\r
 \90¬\8c÷\82Ì\82Æ\82«\83\8c\83\93\83_\83\8a\83\93\83O\83R\83\93\83e\83L\83X\83g, \8e¸\94s\82Ì\82Æ\82«NULL\82ð\96ß\82·.\r
 <a href="SDL_GetError.html">SDL_GetError()</a>\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.\r
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
+<p>\r
+<code>\r
+<pre>\r
+#include "SDL.h"\r
+\r
+SDL_Window *window;\r
+SDL_Renderer *renderer;\r
+int done;\r
+\r
+void\r
+DrawChessBoard(SDL_Renderer * renderer)\r
+{\r
+        int row = 0,column = 0,x = 0;\r
+        SDL_Rect rect, darea;\r
+\r
+        /* Get the Size of drawing surface */\r
+        SDL_RenderGetViewport(renderer, &darea);\r
+\r
+        for( ; row &lt; 8; row++)\r
+        {\r
+                column = row%2;\r
+                x = x + column;\r
+                for( ; column &lt; 4+(row%2); column++)\r
+                {\r
+                        SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);\r
+\r
+                        rect.w = darea.w/8;\r
+                        rect.h = darea.h/8;\r
+                        rect.x = x * rect.w;\r
+                        rect.y = row * rect.h;\r
+                        x = x + 2;\r
+                        SDL_RenderFillRect(renderer, &rect);\r
+                }\r
+                x=0;\r
+        }\r
+}\r
+\r
+void\r
+loop()\r
+{\r
+        SDL_Event e;\r
+        if (SDL_PollEvent(&e)) {\r
+                if (e.type == SDL_QUIT) {\r
+                        done = 1;\r
+                        return;\r
+                }\r
+\r
+                if(e.key.keysym.sym == SDLK_ESCAPE) {\r
+                        done = 1;\r
+                        return;\r
+                }\r
+        }\r
+        \r
+        DrawChessBoard(renderer);\r
+        \r
+        /* Got everything on rendering surface,\r
+           now Update the drawing image on window screen */\r
+        SDL_UpdateWindowSurface(window);\r
+}\r
+\r
+int\r
+main(int argc, char *argv[])\r
+{\r
+        SDL_Surface *surface;\r
+\r
+        /* Enable standard application logging */\r
+        SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);\r
+\r
+        /* Initialize SDL */\r
+        if(SDL_Init(SDL_INIT_VIDEO) != 0)\r
+        {\r
+                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError());\r
+                return 1;\r
+        }\r
+\r
+\r
+        /* Create window and renderer for given surface */\r
+        window = SDL_CreateWindow("Chess Board", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);\r
+        if(!window)\r
+        {\r
+                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError());\r
+                return 1;\r
+        }       \r
+        surface = SDL_GetWindowSurface(window);\r
+        renderer = SDL_CreateSoftwareRenderer(surface);\r
+        if(!renderer)\r
+        {\r
+                SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError());\r
+                return 1;\r
+        }\r
+\r
+        /* Clear the rendering surface with the specified color */\r
+        SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);\r
+        SDL_RenderClear(renderer);\r
+\r
+\r
+        /* Draw the Image on rendering surface */\r
+        done = 0;\r
+\r
+        while (!done) {\r
+                loop();\r
+        }\r
+\r
+        return 0;\r
+}\r
+</pre>\r
+</code>\r
+</p>\r
+<h2>\8fÚ\8d×</h2>\r
+<p>\r
+SDL_Renderer\82ð\90\90¬\82·\82é\82½\82ß\82É\82Í\8e\9f\82Ì2\82Â\82ÌAPI\82à\8eg\82¦\82é:<br>\r
+1) <a href="SDL_CreateRenderer.html">SDL_CreateRenderer</a><br>\r
+2) <a href="SDL_CreateWindowAndRenderer.html">SDL_CreateWindowAndRenderer</a></br>\r
+</p>\r
 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
 <a href="SDL_CreateRenderer.html">SDL_CreateRenderer</a><br>\r
 <a href="SDL_DestroyRenderer.html">SDL_DestroyRenderer</a><br>\r