1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
= OpenGLϢ
* ((<OpenGL Ϣǽ>))
* OpenGLϢå
TOC
== OpenGL Ϣǽ
Ruby/SDL ϡĤΥץåȥե(Linux/X11,
Win32, MacOS X, etc)ˤơ
OpenGL ƥȤȤȤǤޤ
ˤꡢOpenGLƱ
Ruby/SDLΥǥ٥Ƚ
ޡȤȤǤޤ
Ruby/SDL ΤΤ OpenGL ѤΥåɤäƤޤ
((<ruby-opengl|URL:http://ruby-opengl.rubyforge.org/>)),
((<riko|URL:http://www.kumaryu.net/?(Ruby)+Riko>))
ʤɤѤƤ
===
OpenGL Ȥ Ruby/SDLνϡ
̤ Ruby/SDL Τ
礭ʰ㤤Ϥޤ3 Ĥΰ㤤ޤ
@[Screen.open]SDL::OPENGLϤɬפꡢ
@[GL.set_attr]Ȥä
Ĥ GL °(ǥץХåեΥ
ե졼ХåեΥ)ꤹɬפꡢ
ƺǸ˥֥ХåեȤʤ
@[Screen.open]SDL::DOUBLEBUF
ե饰ϤȤˤä((*ǤϤʤ*))
GL ȥӥ塼ȤȤƻꤹɬפޤ
EXAMPLE
# ޤӥǥ֥ƥ
SDL.init(SDL::INIT_VIDEO)
# ĤΥӥǥ
info = SDL::Screen.info
# ̤640x480˥å
width = 640;
height = 480;
# ̤ᤷƤԥ뿼٤
bpp = info.bpp
# ǡOpenGL ɥΤ
# ᤵ줿ɥ°ꤷ
# RGB ƥͥ *ʤȤ* 5 ӥåߤ
# ޤʤȤ 16 ӥåȤΥǥץХåեߤ
#
# Ǹˤϥ֥ХåեɥǤ롣
# '1' ǥ֥Хåեͭˤʤꡢ
# '0' ̵ˤʤ롣
#
# SDL::Screen.open ؤΥե饰ˤ
# SDL::DOUBLEBUF Ȥʤա
# GL ȥӥ塼Ȥ˱ƶ
# ɸ 2D blit ž˱ƶ롣
SDL::GL.set_attr(SDL::GL::RED_SIZE, 5)
SDL::GL.set_attr(SDL::GL::GREEN_SIZE, 5)
SDL::GL.set_attr(SDL::GL::BLUE_SIZE, 5)
SDL::GL.set_attr(SDL::GL::DEPTH_SIZE, 16)
SDL::GL.set_attr(SDL::GL::DOUBLEBUFFER, 1)
# SDL ե륹ӥǥ⡼ɤˤ
# OpenGL ɥƤ褦ᤷ
flags = SDL:;OPENGL | SDL::FULLSCREEN
# ӥǥ⡼ɤꡣ
SDL::Screen.open(width, height, bpp, flags)
=== GL°
@[GL.get_attr] @[GL.set_attr] Ǥϰʲ°
Ǥޤ
* SDL::GL::RED_SIZE ե졼Хåե֥ͥΥ(ӥåȿ)
* SDL::GL::GREEN_SIZE ե졼ХåեХͥΥ(ӥåȿ)
* SDL::GL::BLUE_SIZE ե졼ХåեĥͥΥ(ӥåȿ)
* SDL::GL::ALPHA_SIZE ե졼ХåեΦͥΥ(ӥåȿ)
* SDL::GL::DOUBLEBUFFER 0 ޤ 1 ͤꡢ֥Хåեͭޤ̵ˤ롣
* SDL::GL::BUFFER_SIZE ե졼ХåեΥ(ӥåȿ)
* SDL::GL::DEPTH_SIZE ǥץХåեΥ(ӥåȿ)
* SDL::GL::STENCIL_SIZE ƥХåեΥ(ӥåȿ)
* SDL::GL::ACCUM_RED_SIZE 졼Хåե֥ͥΥ(ӥåȿ)
* SDL::GL::ACCUM_GREEN_SIZE 졼ХåեХͥΥ(ӥåȿ)
* SDL::GL::ACCUM_BLUE_SIZE 졼ХåեĥͥΥ(ӥåȿ)
* SDL::GL::ACCUM_ALPHA_SIZE 졼ХåեΦͥΥ(ӥåȿ)
* SDL::GL::STEREO 3DΩλϤ뤫ɤ(0 or 1)
* SDL::GL::MULTISAMPLEBUFFERS multisample anti-aliasing ΥХåե(ǥեȤ0̵̣)
* SDL::GL::MULTISAMPLESAMPLES multisample anti-aliasing ǻȤץ(ǥեȤ0̵ͭˤʤ 2 4 ꤹΤ)
* SDL::GL::ACCELERATED_VISUAL 1ꤹȥϡɥ졼0ȥեȥ롣ǥեȤȤɤ餫ѲǽʤۤѤ
* SDL::GL::SWAP_CONTROL Deprecated
===
ϴŪ OpenGL APIΤޤȤޤ
֥Хåե̤ȤȤϡ
Хåե̤뤿
@[GL.swap_buffers]Ȥɬפޤ
OpenGL ǥ֥Хåե᤹뤿ˤϡ
@[GL.set_attr](SDL::GL::DOUBLEBUFFER, 1)
Ȥɬפꡢºݤ줿ɤǧ뤿
@[GL.get_attr](SDL::GL::DOUBLEBUFFER)
Ȥޤ
== Methods
%%%
NAME get_attr
MOD GL
TYPE .
PURPOSE ü SDL/OpenGL °ͤޤ
RVAL Integer
PROTO
get_attr(attr)
getAttr(attr)
DESC
((<OpenGL°|GL°>)) attr ֤ͤޤ
ϡ@[Screen#open]θƤӽФθˡʤλꤷ
°̤˥åȤ줿ɤåΤͭ
Ǥ
EXCEPTION *
SEEALSO
GL.set_attr
%%
NAME set_attr
MOD GL
TYPE .
PURPOSE ü SDL/OpenGL °åȤޤ
PROTO
set_attr(attr, val)
setAttr(attr, val)
DESC
OpenGL((<°|GL°>)) attr val ˥åȤޤ
åȤ°ϡ@[Screen.open]
θƤӽФޤǤͭˤʤޤ
@[Screen.open]θƤӽФθϡ@[GL.get_attr]
Ȥäͤå٤Ǥ
EXCEPTION *
NOTES
OpenGL ӥǥ⡼ɤåȤ
֥Хåեͭˤ뤿ˤ
SDL;;DOUBLEBUF ɬפǤϤޤ
֥Хåե SDL::GL::DOUBLEBUFFER °ȤȤ
ͭޤ̵ˤʤޤ
SEEALSO
GL.get_attr
%%
NAME swap_buffers
MOD GL
TYPE .
PURPOSE OpenGL Υե졼Хåեؤޤ/ɽޤ
PROTO
swap_buffers()
swapBuffers()
DESC
֥ХåեݡȤƤ OpenGL ΥХåեؤޤ
SEEALSO
GL.set_attr
GL::Screen.open
|