1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
\r
4 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
\r
5 <meta http-equiv="Content-Style-Type" content="text/css">
\r
6 <meta name="keywords" content="Simple Directmedia Layer SDL2.0">
\r
7 <link rel="top" href="index.html" title="
\83z
\81[
\83\80">
\r
8 <link rel="parent" href="CategorySurface.html" title="1
\82Â
\8fã">
\r
9 <title>SDL_CreateRGBSurfaceFrom</title>
\r
12 <a href="index.html">
\96Ú
\8e\9f</a> - <a href="ApiByCategory.html">API(
\8b@
\94\
\95Ê)</a> - <a href="CategorySurface.html">
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\90¶
\90¬
\82Æ
\92P
\8f\83\82È
\95`
\89æ</a> - SDL_CreateRGBSurfaceFrom
\r
14 <h1>SDL_CreateRGBSurfaceFrom</h1>
\r
15 \8aù
\91¶
\82Ì
\83s
\83N
\83Z
\83\8b\83f
\81[
\83^
\82©
\82ç
\90V
\82µ
\82¢RGB
\83T
\81[
\83t
\83F
\83C
\83X
\82ð
\90¶
\90¬
\82·
\82é
\r
17 <code>SDL_Surface* SDL_CreateRGBSurfaceFrom(void* pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)</code>
\r
19 <table border="1" summary="SDL_CreateRGBSurfaceFrom">
\r
20 <tr><td>pixels</td><td>
\8aù
\91¶
\82Ì
\83s
\83N
\83Z
\83\8b\83f
\81[
\83^
\82Ö
\82Ì
\83|
\83C
\83\93\83^</td></tr>
\r
21 <tr><td>width</td><td>
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\95\9d</td></tr>
\r
22 <tr><td>height</td><td>
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\8d\82\82³</td></tr>
\r
23 <tr><td>depth</td><td>
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\83r
\83b
\83g
\90[
\93x (
\8fÚ
\8d×
\82ð
\8eQ
\8fÆ
\82·
\82é
\82±
\82Æ)</td></tr>
\r
24 <tr><td>pitch</td><td>
\90\85\95½
\95û
\8cü
\82Ì
\83o
\83C
\83g
\90\94</td></tr>
\r
25 <tr><td>Rmask</td><td>
\83s
\83N
\83Z
\83\8b\82Ì
\90Ô
\83}
\83X
\83N</td></tr>
\r
26 <tr><td>Gmask</td><td>
\83s
\83N
\83Z
\83\8b\82Ì
\97Î
\83}
\83X
\83N</td></tr>
\r
27 <tr><td>Bmask</td><td>
\83s
\83N
\83Z
\83\8b\82Ì
\90Â
\83}
\83X
\83N</td></tr>
\r
28 <tr><td>Amask</td><td>
\83s
\83N
\83Z
\83\8b\82Ì
\83¿
\83}
\83X
\83N</td></tr>
\r
30 <h2>
\96ß
\82è
\92l</h2>
\r
31 \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·.
\r
32 <a href="SDL_GetError.html">SDL_GetError()</a>
\82ð
\8cÄ
\82ñ
\82Å
\8fÚ
\8d×
\82ð
\92m
\82é
\82±
\82Æ
\82ª
\82Å
\82«
\82é.
\r
33 <h2>
\83T
\83\93\83v
\83\8b\83R
\81[
\83h</h2>
\r
37 // 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\r
38 // (https://github.com/nothings/stb/)
\r
40 // stb_image
\82É
\97v
\8b\81\82·
\82é
\8fo
\97Í
\82Ì
\83J
\83\89\81[
\8c`
\8e®
\r
41 //
\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Æ
\r
42 int req_format = STBI_rgb_alpha;
\r
43 int width, height, orig_format;
\r
44 unsigned char* data = stbi_load("./test.png", &width, &height, &orig_format, req_format);
\r
46 SDL_Log("
\89æ
\91\9c\83t
\83@
\83C
\83\8b\82Ì
\93Ç
\82Ý
\8d\9e\82Ý
\82É
\8e¸
\94s
\82µ
\82½: %s", stbi_failure_reason());
\r
50 // RGB(A)
\83o
\83C
\83g
\94z
\97ñ
\82Ì
\82½
\82ß
\82Ì
\83s
\83N
\83Z
\83\8b\8c`
\8e®
\82Ì
\83J
\83\89\81[
\83}
\83X
\83N
\82ð
\90Ý
\92è
\82·
\82é
\r
51 //
\82±
\82ê
\82ÍSTBI_rgb (3)
\82ÆSTBI_rgb_alpha (4)
\82Ì
\82Ý
\91Î
\89\9e\82µ
\82Ä
\82¢
\82é!
\r
52 Uint32 rmask, gmask, bmask, amask;
\r
53 #if SDL_BYTEORDER == SDL_BIG_ENDIAN
\r
54 int shift = (req_format == STBI_rgb) ? 8 : 0;
\r
55 rmask = 0xff000000 >> shift;
\r
56 gmask = 0x00ff0000 >> shift;
\r
57 bmask = 0x0000ff00 >> shift;
\r
58 amask = 0x000000ff >> shift;
\r
59 #else // little endian, like x86
\r
63 amask = (req_format == STBI_rgb) ? 0 : 0xff000000;
\r
67 if (req_format == STBI_rgb) {
\r
69 pitch = 3*width; // 1
\83s
\83N
\83Z
\83\8b\82 \82½
\82è3byte * 1
\8ds
\82Ì
\83s
\83N
\83Z
\83\8b\90\94\r
70 } else { // STBI_rgb_alpha (RGBA)
\r
75 SDL_Surface* surf = SDL_CreateRGBSurfaceFrom((void*)data, width, height, depth, pitch,
\r
76 rmask, gmask, bmask, amask);
\r
79 SDL_Log("
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\90¶
\90¬
\82É
\8e¸
\94s
\82µ
\82½: %s", SDL_GetError());
\r
80 stbi_image_free(data);
\r
84 // ...
\82±
\82±
\82Å
\83T
\81[
\83t
\83F
\83C
\83X
\82ð
\8eg
\82¤ ...
\r
87 //
\83T
\81[
\83t
\83F
\83C
\83X
\82ª
\95K
\97v
\82È
\82
\82È
\82Á
\82½
\82ç
\89ð
\95ú
\82·
\82é...
\r
88 SDL_FreeSurface(surf);
\r
89 // .. *
\82»
\82µ
\82Ä*
\83T
\81[
\83t
\83F
\83C
\83X
\82Å
\8eg
\82Á
\82½
\83f
\81[
\83^
\82à!
\r
90 stbi_image_free(data);
\r
96 depth
\82ª4
\82Ü
\82½
\82Í8
\82Ì
\82Æ
\82«,
\8bó
\82Ì
\83p
\83\8c\83b
\83g
\82ª
\90¶
\90¬
\82³
\82ê
\82é.
\r
97 depth
\82ª8
\82ð
\92´
\82¦
\82é
\82Æ
\82«,
\88ø
\90\94\82Ì[RGBA]mask
\82ð
\8eg
\82Á
\82½
\83s
\83N
\83Z
\83\8b\8c`
\8e®
\82ª
\90Ý
\92è
\82³
\82ê
\82é.
\r
100 [RGBA]mask
\82Í
\83s
\83N
\83Z
\83\8b\82Ì
\90F
\82ð
\8ew
\92è
\82·
\82é
\82½
\82ß
\82Ì
\83r
\83b
\83g
\83}
\83X
\83N
\82Æ
\82µ
\82Ä
\8eg
\82í
\82ê
\82é.
\r
101 \97á
\82¦
\82Î, Rmask
\82ªFF0000
\82È
\82ç
\82Î,
\90Ô
\82Ì
\83f
\81[
\83^
\82Í
\8dÅ
\8fã
\88Ê
\83o
\83C
\83g
\82É
\8ai
\94[
\82³
\82ê
\82é.
\r
102 [RGB]mask
\82ð0
\82É
\82·
\82é
\82Æ,
\83r
\83b
\83g
\90[
\93x
\82É
\8aî
\82Ã
\82¢
\82½
\83f
\83t
\83H
\83\8b\83g
\82Ì
\92l
\82É
\82È
\82é.
\r
103 (
\97á: <code>SDL_CreateRGBSurface(0,w,h,32,0,0,0,0);</code>)
\r
104 \82µ
\82©
\82µ, Amask
\82ð0
\82É
\82·
\82é
\82Æ,
\83¿
\83}
\83X
\83N
\82Í0
\82É
\82È
\82é.
\r
107 \83¿
\83}
\83X
\83N
\95t
\82«
\83T
\81[
\83t
\83F
\83C
\83X
\82Ì
\83u
\83\8c\83\93\83h
\83\82\81[
\83h
\82Ì
\8f\89\8aú
\92l
\82Í <code>SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND)</code>
\82Å
\82 \82é.
\r
108 <a href="SDL_SetSurfaceBlendMode.html">SDL_SetSurfaceBlendMode()</a>
\82Å
\95Ê
\82Ì
\83u
\83\8c\83\93\83h
\83\82\81[
\83h
\82É
\95Ï
\82¦
\82é
\82±
\82Æ
\82ª
\82Å
\82«
\82é.
\r
111 \83s
\83N
\83Z
\83\8b\83f
\81[
\83^
\82Í
\90V
\82½
\82É
\90¶
\90¬
\82³
\82ê
\82È
\82¢.
\r
112 \83s
\83N
\83Z
\83\8b\83f
\81[
\83^
\82Í
\8aÇ
\97\9d\8aO
\82Å
\82 \82é.
\r
113 \82Â
\82Ü
\82è,
\83T
\81[
\83t
\83F
\83C
\83X
\82ð
\89ð
\95ú
\82µ
\82½
\8cã
\82Í
\83s
\83N
\83Z
\83\8b\83f
\81[
\83^
\82à
\89ð
\95ú
\82·
\82é
\95K
\97v
\82ª
\82 \82é.
\r
115 <h2>
\8aÖ
\98A
\8d\80\96Ú(
\8aÖ
\90\94)</h2>
\r
116 <a href="SDL_CreateRGBSurface.html">SDL_CreateRGBSurface</a><br>
\r
117 <a href="SDL_CreateRGBSurfaceWithFormatFrom.html">SDL_CreateRGBSurfaceWithFormatFrom</a><br>
\r
118 <a href="SDL_FreeSurface.html">SDL_FreeSurface</a><br>
\r
119 <h2>SDL Wiki
\82Ö
\82Ì
\83\8a\83\93\83N</h2>
\r
120 <a href="https://wiki.libsdl.org/SDL_CreateRGBSurfaceFrom">SDL_CreateRGBSurfaceFrom - SDL Wiki</a>
\r