OSDN Git Service

SDL_Vulkan_GetDrawableSize 新規追加 https://wiki.libsdl.org/SDL_Vulkan_GetDrawableSize
[sdl2referencejp/sdl2referencejp.git] / SDL_CreateSoftwareRenderer.html
index ee04403..da5ada5 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
+    /* \95`\89æ\82·\82é\83T\81[\83t\83F\83C\83X\82Ì\83T\83C\83Y\82ð\93¾\82é */\r
+    SDL_RenderGetViewport(renderer, &darea);\r
+\r
+    for ( ; row &lt; 8; row++) {\r
+        column = row%2;\r
+        x = column;\r
+        for ( ; column &lt; 4+(row%2); column++) {\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
+    }\r
+}\r
+\r
+void\r
+loop()\r
+{\r
+    SDL_Event e;\r
+    while (SDL_PollEvent(&e)) {\r
+        if (e.type == SDL_QUIT) {\r
+            done = 1;\r
+            return;\r
+        }\r
+\r
+        if ((e.type == SDL_KEYDOWN) && (e.key.keysym.sym == SDLK_ESCAPE)) {\r
+            done = 1;\r
+            return;\r
+        }\r
+    }\r
+\r
+    DrawChessBoard(renderer);\r
+\r
+    /* \83\8c\83\93\83_\83\8a\83\93\83O\83T\81[\83t\83F\83C\83X\82Ì\8f\88\97\9d\82ª\8a®\97¹\82µ\82½\82È\82ç\82Î, \r
+       \83E\83B\83\93\83h\83E\82ð\95`\82¢\82½\89æ\91\9c\82Å\8dX\90V\82·\82é */\r
+    SDL_UpdateWindowSurface(window);\r
+}\r
+\r
+int\r
+main(int argc, char *argv[])\r
+{\r
+    SDL_Surface *surface;\r
+\r
+    /* \92Ê\8fí\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\8d\83O\82ð\97L\8cø\82É\82·\82é */\r
+    SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);\r
+\r
+    /* SDL\82ð\8f\89\8aú\89»\82·\82é */\r
+    if (SDL_Init(SDL_INIT_VIDEO) != 0) {\r
+        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init\82É\8e¸\94s\82µ\82½ : %s\n", SDL_GetError());\r
+        return 1;\r
+    }\r
+\r
+\r
+    /* \8ew\92è\82Ì\83T\81[\83t\83F\83C\83X\82Ì\83E\83B\83\93\83h\83E\82Æ\83\8c\83\93\83_\83\89\81[\82ð\90\90¬\82·\82é */\r
+    window = SDL_CreateWindow("\83`\83F\83X\94Õ", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);\r
+    if (!window) {\r
+        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "\83E\83B\83\93\83h\83E\82Ì\90\90¬\82É\8e¸\94s\82µ\82½ : %s\n",SDL_GetError());\r
+        return 1;\r
+    }\r
+    surface = SDL_GetWindowSurface(window);\r
+    renderer = SDL_CreateSoftwareRenderer(surface);\r
+    if (!renderer) {\r
+        SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "\83T\81[\83t\83F\83C\83X\82Ì\83\8c\83\93\83_\83\89\81[\82Ì\90\90¬\82É\8e¸\94s\82µ\82½ : %s\n",SDL_GetError());\r
+        return 1;\r
+    }\r
+\r
+    /* \83\8c\83\93\83_\83\8a\83\93\83O\83T\81[\83t\83F\83C\83X\82ð\8ew\92è\82Ì\90F\82Å\8fÁ\8b\8e\82·\82é */\r
+    SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);\r
+    SDL_RenderClear(renderer);\r
+\r
+\r
+    /* \83\8c\83\93\83_\83\8a\83\93\83O\83T\81[\83t\83F\83C\83X\82É\89æ\91\9c\82ð\95`\89æ\82·\82é */\r
+    done = 0;\r
+\r
+    while (!done) {\r
+        loop();\r
+    }\r
+\r
+    SDL_Quit();\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