OSDN Git Service

SDL_EventState 関連項目(関数)にSDL_GetEventStateを追加 https://wiki.libsdl.org/SDL_EventState...
[sdl2referencejp/sdl2referencejp.git] / SDL_CreateRGBSurfaceWithFormatFrom.html
index 6ce9dbd..9517fb0 100644 (file)
 <tr><td>height</td><td>\83T\81[\83t\83F\83C\83X\82Ì\8d\82\82³</td></tr>
 <tr><td>depth</td><td>\83T\81[\83t\83F\83C\83X\82Ì\83r\83b\83g\90[\93x</td></tr>
 <tr><td>pitch</td><td>pixels\82Ì\90\85\95½\95û\8cü\82Ì\83o\83C\83g\90\94</td></tr>
-<tr><td>format</td><td>\83T\81[\83t\83F\83C\83X\82Ì\83t\83H\81[\83}\83b\83g</td></tr>
+<tr><td>format</td><td>\83T\81[\83t\83F\83C\83X\82Ì<a href="SDL_PixelFormatEnum.html">\83s\83N\83Z\83\8b\8c`\8e®</a></td></tr>
 </table>
 <h2>\96ß\82è\92l</h2>
 \90¬\8c÷\82Ì\82Æ\82«\90\90¬\82³\82ê\82½<a href="SDL_Surface.html">SDL_Surface</a>, \8e¸\94s\82Ì\82Æ\82«NULL\82ð\96ß\82·.
 <a href="SDL_GetError.html">SDL_GetError()</a>\82ð\8cÄ\82ñ\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>
+<p>
+<code>
+<pre>
+// stb_image.h\82ð\8eg\82Á\82Ä\93Ç\82Ý\8d\9e\82ñ\82¾\89æ\91\9c\83t\83@\83C\83\8b\82©\82çSDL_Surface*\82ð\90\90¬\82·\82é\83T\83\93\83v\83\8b
+// (https://github.com/nothings/stb/)
+
+// stb_image\82É\97v\8b\81\82·\82é\8fo\97Í\82Ì\83J\83\89\81[\8c`\8e®
+// \83¿\83`\83\83\83l\83\8b\82ð\8b\81\82ß\82È\82¢/\95K\97v\82È\82¢\82È\82ç\82ÎSTBI_rgb\82ð\8eg\82¤\82±\82Æ
+int req_format = STBI_rgb_alpha;
+int width, height, orig_format;
+unsigned char* data = stbi_load("./test.png", &width, &height, &orig_format, req_format);
+if (data == NULL) {
+    SDL_Log("\89æ\91\9c\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82½: %s", stbi_failure_reason());
+    exit(1);
+}
+
+int depth, pitch;
+Uint32 pixel_format;
+if (req_format == STBI_rgb) {
+    depth = 24;
+    pitch = 3*width; // 1\83s\83N\83Z\83\8b\82 \82½\82è3byte * 1\8ds\82Ì\83s\83N\83Z\83\8b\90\94
+    pixel_format = SDL_PIXELFORMAT_RGB24;
+} else { // STBI_rgb_alpha (RGBA)
+    depth = 32;
+    pitch = 4*width;
+    pixel_format = SDL_PIXELFORMAT_RGBA32;
+}
+
+SDL_Surface* surf = SDL_CreateRGBSurfaceWithFormatFrom((void*)data, width, height,
+                                                       depth, pitch, pixel_format);
+
+if (surf == NULL) {
+    SDL_Log("\83T\81[\83t\83F\83C\83X\82Ì\90\90¬\82É\8e¸\94s\82µ\82½: %s", SDL_GetError());
+    stbi_image_free(data);
+    exit(1);
+}
+
+// ... \82±\82±\82Å\83T\81[\83t\83F\83C\83X\82ð\8eg\82¤ ...
+// ...
+
+// \83T\81[\83t\83F\83C\83X\82ª\95K\97v\82È\82­\82È\82Á\82½\82ç\89ð\95ú\82·\82é...
+SDL_FreeSurface(surf);
+// .. *\82»\82µ\82Ä* \83T\81[\83t\83F\83C\83X\82Å\8eg\82Á\82½\83f\81[\83^\82à!
+stbi_image_free(data);
+</pre>
+</code>
+</p>
 <h2>\8fÚ\8d×</h2>
 <p>
 \83\81\83\82\83\8a\82ð\8am\95Û\82Å\82«\82È\82©\82Á\82½\82Æ\82«\82ÍNULL\82ð\96ß\82·.
 </p>
+<p>
+\83s\83N\83Z\83\8b\83f\81[\83^\82Í\83R\83s\81[\82³\82ê\82È\82¢.
+\83s\83N\83Z\83\8b\83f\81[\83^\82Í\8e©\93®\93I\82É\8aÇ\97\9d\82³\82ê\82È\82¢. \82Â\82Ü\82è, \83s\83N\83Z\83\8b\83f\81[\83^\82ð\89ð\95ú\82·\82é\91O\82É\83T\81[\83t\83F\83C\83X\82ð\89ð\95ú\82·\82é\95K\97v\82ª\82 \82é.
+</p>
 <h2>\83o\81[\83W\83\87\83\93</h2>
 <p>
 \82±\82Ì\8aÖ\90\94\82ÍSDL 2.0.5\88È\8d~\82Å\8eg\82¦\82é.
 </p>
 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>
+<a href="SDL_CreateRGBSurfaceFrom.html">SDL_CreateRGBSurfaceFrom</a><br>
 <a href="SDL_CreateRGBSurfaceWithFormat.html">SDL_CreateRGBSurfaceWithFormat</a><br>
 <a href="SDL_FreeSurface.html">SDL_FreeSurface</a><br>
 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>