Path: blob/master/Resources/taoframework-2.1.0/bin/Tao.Sdl.xml
178 views
<?xml version="1.0"?>1<doc>2<assembly>3<name>Tao.Sdl</name>4</assembly>5<members>6<member name="T:Tao.Sdl.SdlGfx">7<summary>8SDL graphics drawing primitives and other support functions9The SDL_gfx library evolved out of the SDL_gfxPrimitives code which10provided basic drawing routines such as lines, circles or polygons11and SDL_rotozoom which implemented a interpolating rotozoomer for12SDL surfaces.13<p>14The current components of the SDL_gfx library are:1516<br>Graphic Primitives (SDL_gfxPrimitves.h)</br>17<br>Rotozoomer (SDL_rotozoom.h) </br>18<br>Framerate control (SDL_framerate.h) </br>19MMX image filters (SDL_imageFilter.h)</p>20</summary>21</member>22<member name="F:Tao.Sdl.SdlGfx.SDL_GFX_NATIVE_LIBRARY">23<summary>24Specifies SdlTtf's native library archive.25</summary>26<remarks>27Specifies SDL_gfx.dll everywhere; will be mapped via .config for mono.28</remarks>29</member>30<member name="F:Tao.Sdl.SdlGfx.CALLING_CONVENTION">31<summary>32Specifies the calling convention.33</summary>34<remarks>35Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>36for Windows and Linux.37</remarks>38</member>39<member name="F:Tao.Sdl.SdlGfx.SDL_GFXPRIMITIVES_MAJOR">40<summary>41Major Version42</summary>43</member>44<member name="F:Tao.Sdl.SdlGfx.SDL_GFXPRIMITIVES_MINOR">45<summary>46Minor Version47</summary>48</member>49<member name="F:Tao.Sdl.SdlGfx.SDL_GFXPRIMITIVES_MICRO">50<summary>51Micro Version52</summary>53</member>54<member name="F:Tao.Sdl.SdlGfx.SMOOTHING_OFF">55<summary>5657</summary>58</member>59<member name="F:Tao.Sdl.SdlGfx.SMOOTHING_ON">60<summary>6162</summary>63</member>64<member name="F:Tao.Sdl.SdlGfx.FPS_UPPER_LIMIT">65<summary>6667</summary>68</member>69<member name="F:Tao.Sdl.SdlGfx.FPS_LOWER_LIMIT">70<summary>7172</summary>73</member>74<member name="F:Tao.Sdl.SdlGfx.FPS_DEFAULT">75<summary>7677</summary>78</member>79<member name="M:Tao.Sdl.SdlGfx.pixelColor(System.IntPtr,System.Int16,System.Int16,System.Int32)">80<summary>81Pixel82</summary>83<param name="dst"></param>84<param name="x"></param>85<param name="y"></param>86<param name="color"></param>87<returns></returns>88</member>89<member name="M:Tao.Sdl.SdlGfx.pixelRGBA(System.IntPtr,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">90<summary>91Pixel92</summary>93<param name="dst"></param>94<param name="x"></param>95<param name="y"></param>96<param name="r"></param>97<param name="g"></param>98<param name="b"></param>99<param name="a"></param>100<returns></returns>101</member>102<member name="M:Tao.Sdl.SdlGfx.hlineColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int32)">103<summary>104Horizontal line105</summary>106<param name="dst"></param>107<param name="x1"></param>108<param name="x2"></param>109<param name="y"></param>110<param name="color"></param>111<returns></returns>112</member>113<member name="M:Tao.Sdl.SdlGfx.hlineRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">114<summary>115Horizontal line116</summary>117<param name="dst"></param>118<param name="x1"></param>119<param name="x2"></param>120<param name="y"></param>121<param name="r"></param>122<param name="g"></param>123<param name="b"></param>124<param name="a"></param>125<returns></returns>126</member>127<member name="M:Tao.Sdl.SdlGfx.vlineColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int32)">128<summary>129Vertical line130</summary>131<param name="dst"></param>132<param name="x"></param>133<param name="y1"></param>134<param name="y2"></param>135<param name="color"></param>136<returns></returns>137</member>138<member name="M:Tao.Sdl.SdlGfx.vlineRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">139<summary>140Vertical Line141</summary>142<param name="dst"></param>143<param name="x"></param>144<param name="y1"></param>145<param name="y2"></param>146<param name="r"></param>147<param name="g"></param>148<param name="b"></param>149<param name="a"></param>150<returns></returns>151</member>152<member name="M:Tao.Sdl.SdlGfx.rectangleColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">153<summary>154Rectangle155</summary>156<param name="dst"></param>157<param name="x1"></param>158<param name="y1"></param>159<param name="x2"></param>160<param name="y2"></param>161<param name="color"></param>162<returns></returns>163</member>164<member name="M:Tao.Sdl.SdlGfx.rectangleRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">165<summary>166Rectangle167</summary>168<param name="dst"></param>169<param name="x1"></param>170<param name="y1"></param>171<param name="x2"></param>172<param name="y2"></param>173<param name="r"></param>174<param name="g"></param>175<param name="b"></param>176<param name="a"></param>177<returns></returns>178</member>179<member name="M:Tao.Sdl.SdlGfx.boxColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">180<summary>181Filled rectangle (Box)182</summary>183<param name="dst"></param>184<param name="x1"></param>185<param name="y1"></param>186<param name="x2"></param>187<param name="y2"></param>188<param name="color"></param>189<returns></returns>190</member>191<member name="M:Tao.Sdl.SdlGfx.boxRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">192<summary>193Filled rectangle (Box)194</summary>195<param name="dst"></param>196<param name="x1"></param>197<param name="y1"></param>198<param name="x2"></param>199<param name="y2"></param>200<param name="r"></param>201<param name="g"></param>202<param name="b"></param>203<param name="a"></param>204<returns></returns>205</member>206<member name="M:Tao.Sdl.SdlGfx.lineColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">207<summary>208Line209</summary>210<param name="dst"></param>211<param name="x1"></param>212<param name="y1"></param>213<param name="x2"></param>214<param name="y2"></param>215<param name="color"></param>216<returns></returns>217</member>218<member name="M:Tao.Sdl.SdlGfx.lineRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">219<summary>220Line221</summary>222<param name="dst"></param>223<param name="x1"></param>224<param name="y1"></param>225<param name="x2"></param>226<param name="y2"></param>227<param name="r"></param>228<param name="g"></param>229<param name="b"></param>230<param name="a"></param>231<returns></returns>232</member>233<member name="M:Tao.Sdl.SdlGfx.aalineColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">234<summary>235AA Line236</summary>237<param name="dst"></param>238<param name="x1"></param>239<param name="y1"></param>240<param name="x2"></param>241<param name="y2"></param>242<param name="color"></param>243<returns></returns>244</member>245<member name="M:Tao.Sdl.SdlGfx.aalineRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">246<summary>247AA Line248</summary>249<param name="dst"></param>250<param name="x1"></param>251<param name="y1"></param>252<param name="x2"></param>253<param name="y2"></param>254<param name="r"></param>255<param name="g"></param>256<param name="b"></param>257<param name="a"></param>258<returns></returns>259</member>260<member name="M:Tao.Sdl.SdlGfx.circleColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int32)">261<summary>262Circle263</summary>264<remarks>265266<p>Binds to C-function in SDL_gfx.h267<code>268int circleColor(IntPtr dst, short x, short y, short r, int color);269</code></p>270</remarks>271<example>272<code>273274</code>275</example>276<returns>277278</returns>279<param name="color"></param>280<param name="dst"></param>281<param name="r"></param>282<param name="x"></param>283<param name="y"></param>284</member>285<member name="M:Tao.Sdl.SdlGfx.circleRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">286<summary>287Circle288</summary>289<remarks>290291<p>Binds to C-function in SDL_gfx.h292<code>293int circleRGBA(IntPtr dst, short x, short y, short rad, byte r, byte g, byte b, byte a)294</code></p>295</remarks>296<example>297<code>298299</code>300</example>301<returns>302303</returns>304<param name="a"></param>305<param name="b"></param>306<param name="g"></param>307<param name="rad"></param>308<param name="dst"></param>309<param name="r"></param>310<param name="x"></param>311<param name="y"></param>312</member>313<member name="M:Tao.Sdl.SdlGfx.filledCircleColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int32)">314<summary>315Filled Circle316</summary>317<remarks>318319<p>Binds to C-function in SDL_gfx.h320<code>321int filledCircleColor(IntPtr dst, short x, short y, short r, int color);322</code></p>323</remarks>324<example>325<code>326327</code>328</example>329<returns>330331</returns>332<param name="color"></param>333<param name="dst"></param>334<param name="r"></param>335<param name="x"></param>336<param name="y"></param>337</member>338<member name="M:Tao.Sdl.SdlGfx.filledCircleRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">339<summary>340Filled Circle341</summary>342<remarks>343344<p>Binds to C-function in SDL_gfx.h345<code>346int filledCircleRGBA(IntPtr dst, short x, short y, short rad, byte r, byte g, byte b, byte a)347</code></p>348</remarks>349<example>350<code>351352</code>353</example>354<returns>355356</returns>357<param name="a"></param>358<param name="b"></param>359<param name="g"></param>360<param name="rad"></param>361<param name="dst"></param>362<param name="r"></param>363<param name="x"></param>364<param name="y"></param>365</member>366<member name="M:Tao.Sdl.SdlGfx.aacircleColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int32)">367<summary>368AA Circle369</summary>370<param name="dst"></param>371<param name="x"></param>372<param name="y"></param>373<param name="r"></param>374<param name="color"></param>375<returns></returns>376</member>377<member name="M:Tao.Sdl.SdlGfx.aacircleRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">378<summary>379AA Circle380</summary>381<param name="dst"></param>382<param name="x"></param>383<param name="y"></param>384<param name="rad"></param>385<param name="r"></param>386<param name="g"></param>387<param name="b"></param>388<param name="a"></param>389<returns></returns>390</member>391<member name="M:Tao.Sdl.SdlGfx.ellipseColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">392<summary>393Ellipse394</summary>395<param name="dst"></param>396<param name="x"></param>397<param name="y"></param>398<param name="rx"></param>399<param name="ry"></param>400<param name="color"></param>401<returns></returns>402</member>403<member name="M:Tao.Sdl.SdlGfx.ellipseRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">404<summary>405Ellipse406</summary>407<param name="dst"></param>408<param name="x"></param>409<param name="y"></param>410<param name="rx"></param>411<param name="ry"></param>412<param name="r"></param>413<param name="g"></param>414<param name="b"></param>415<param name="a"></param>416<returns></returns>417</member>418<member name="M:Tao.Sdl.SdlGfx.aaellipseColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">419<summary>420AA Ellipse421</summary>422<param name="dst"></param>423<param name="xc"></param>424<param name="yc"></param>425<param name="rx"></param>426<param name="ry"></param>427<param name="color"></param>428<returns></returns>429</member>430<member name="M:Tao.Sdl.SdlGfx.aaellipseRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">431<summary>432AA Ellipse433</summary>434<param name="dst"></param>435<param name="x"></param>436<param name="y"></param>437<param name="rx"></param>438<param name="ry"></param>439<param name="r"></param>440<param name="g"></param>441<param name="b"></param>442<param name="a"></param>443<returns></returns>444</member>445<member name="M:Tao.Sdl.SdlGfx.filledEllipseColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">446<summary>447Filled Ellipse448</summary>449<param name="dst"></param>450<param name="x"></param>451<param name="y"></param>452<param name="rx"></param>453<param name="ry"></param>454<param name="color"></param>455<returns></returns>456</member>457<member name="M:Tao.Sdl.SdlGfx.filledEllipseRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">458<summary>459Filled Ellipse460</summary>461<param name="dst"></param>462<param name="x"></param>463<param name="y"></param>464<param name="rx"></param>465<param name="ry"></param>466<param name="r"></param>467<param name="g"></param>468<param name="b"></param>469<param name="a"></param>470<returns></returns>471</member>472<member name="M:Tao.Sdl.SdlGfx.pieColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">473<summary>474Pie475</summary>476<param name="dst"></param>477<param name="x"></param>478<param name="y"></param>479<param name="rad"></param>480<param name="start"></param>481<param name="end"></param>482<param name="color"></param>483<returns></returns>484</member>485<member name="M:Tao.Sdl.SdlGfx.pieRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">486<summary>487Pie488</summary>489<param name="dst"></param>490<param name="x"></param>491<param name="y"></param>492<param name="rad"></param>493<param name="start"></param>494<param name="end"></param>495<param name="r"></param>496<param name="g"></param>497<param name="b"></param>498<param name="a"></param>499<returns></returns>500</member>501<member name="M:Tao.Sdl.SdlGfx.filledPieColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">502<summary>503Filled Pie504</summary>505<param name="dst"></param>506<param name="x"></param>507<param name="y"></param>508<param name="rad"></param>509<param name="start"></param>510<param name="end"></param>511<param name="color"></param>512<returns></returns>513</member>514<member name="M:Tao.Sdl.SdlGfx.filledPieRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">515<summary>516Filled Pie517</summary>518<param name="dst"></param>519<param name="x"></param>520<param name="y"></param>521<param name="rad"></param>522<param name="start"></param>523<param name="end"></param>524<param name="r"></param>525<param name="g"></param>526<param name="b"></param>527<param name="a"></param>528<returns></returns>529</member>530<member name="M:Tao.Sdl.SdlGfx.trigonColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">531<summary>532Trigon533</summary>534<param name="dst"></param>535<param name="x1"></param>536<param name="y1"></param>537<param name="x2"></param>538<param name="y2"></param>539<param name="x3"></param>540<param name="y3"></param>541<param name="color"></param>542<returns></returns>543</member>544<member name="M:Tao.Sdl.SdlGfx.trigonRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">545<summary>546Trigon547</summary>548<param name="dst"></param>549<param name="x1"></param>550<param name="y1"></param>551<param name="x2"></param>552<param name="y2"></param>553<param name="x3"></param>554<param name="y3"></param>555<param name="r"></param>556<param name="g"></param>557<param name="b"></param>558<param name="a"></param>559<returns></returns>560</member>561<member name="M:Tao.Sdl.SdlGfx.aatrigonColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">562<summary>563AA-Trigon564</summary>565<param name="dst"></param>566<param name="x1"></param>567<param name="y1"></param>568<param name="x2"></param>569<param name="y2"></param>570<param name="x3"></param>571<param name="y3"></param>572<param name="color"></param>573<returns></returns>574</member>575<member name="M:Tao.Sdl.SdlGfx.aatrigonRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">576<summary>577AA-Trigon578</summary>579<param name="dst"></param>580<param name="x1"></param>581<param name="y1"></param>582<param name="x2"></param>583<param name="y2"></param>584<param name="x3"></param>585<param name="y3"></param>586<param name="r"></param>587<param name="g"></param>588<param name="b"></param>589<param name="a"></param>590<returns></returns>591</member>592<member name="M:Tao.Sdl.SdlGfx.filledTrigonColor(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int32)">593<summary>594Filled Trigon595</summary>596<param name="dst"></param>597<param name="x1"></param>598<param name="y1"></param>599<param name="x2"></param>600<param name="y2"></param>601<param name="x3"></param>602<param name="y3"></param>603<param name="color"></param>604<returns></returns>605</member>606<member name="M:Tao.Sdl.SdlGfx.filledTrigonRGBA(System.IntPtr,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Byte,System.Byte,System.Byte,System.Byte)">607<summary>608Filled Trigon609</summary>610<param name="dst"></param>611<param name="x1"></param>612<param name="y1"></param>613<param name="x2"></param>614<param name="y2"></param>615<param name="x3"></param>616<param name="y3"></param>617<param name="r"></param>618<param name="g"></param>619<param name="b"></param>620<param name="a"></param>621<returns></returns>622</member>623<member name="M:Tao.Sdl.SdlGfx.polygonColor(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Int32)">624<summary>625Polygon626</summary>627<param name="dst"></param>628<param name="vx"></param>629<param name="vy"></param>630<param name="n"></param>631<param name="color"></param>632<returns></returns>633</member>634<member name="M:Tao.Sdl.SdlGfx.polygonRGBA(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Byte,System.Byte,System.Byte,System.Byte)">635<summary>636Polygon637</summary>638<param name="dst"></param>639<param name="vx"></param>640<param name="vy"></param>641<param name="n"></param>642<param name="r"></param>643<param name="g"></param>644<param name="b"></param>645<param name="a"></param>646<returns></returns>647</member>648<member name="M:Tao.Sdl.SdlGfx.aapolygonColor(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Int32)">649<summary>650AA-Polygon651</summary>652<param name="dst"></param>653<param name="vx"></param>654<param name="vy"></param>655<param name="n"></param>656<param name="color"></param>657<returns></returns>658</member>659<member name="M:Tao.Sdl.SdlGfx.aapolygonRGBA(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Byte,System.Byte,System.Byte,System.Byte)">660<summary>661AA-Polygon662</summary>663<param name="dst"></param>664<param name="vx"></param>665<param name="vy"></param>666<param name="n"></param>667<param name="r"></param>668<param name="g"></param>669<param name="b"></param>670<param name="a"></param>671<returns></returns>672</member>673<member name="M:Tao.Sdl.SdlGfx.filledPolygonColor(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Int32)">674<summary>675Filled Polygon676</summary>677<param name="dst"></param>678<param name="vx"></param>679<param name="vy"></param>680<param name="n"></param>681<param name="color"></param>682<returns></returns>683</member>684<member name="M:Tao.Sdl.SdlGfx.filledPolygonRGBA(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Byte,System.Byte,System.Byte,System.Byte)">685<summary>686Filled Polygon687</summary>688<param name="dst"></param>689<param name="vx"></param>690<param name="vy"></param>691<param name="n"></param>692<param name="r"></param>693<param name="g"></param>694<param name="b"></param>695<param name="a"></param>696<returns></returns>697</member>698<member name="M:Tao.Sdl.SdlGfx.texturedPolygon(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.IntPtr,System.Int32,System.Int32)">699<summary>700Textured Polygon701</summary>702<param name="dst"></param>703<param name="vx"></param>704<param name="vy"></param>705<param name="n"></param>706<param name="texture"></param>707<param name="texture_dx"></param>708<param name="texture_dy"></param>709<returns></returns>710</member>711<member name="M:Tao.Sdl.SdlGfx.bezierColor(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Int32,System.Int32)">712<summary>713Bezier714</summary>715<param name="dst"></param>716<param name="vx"></param>717<param name="vy"></param>718<param name="n"></param>719<param name="s">number of steps</param>720<param name="color"></param>721<returns></returns>722</member>723<member name="M:Tao.Sdl.SdlGfx.bezierRGBA(System.IntPtr,System.Int16[],System.Int16[],System.Int32,System.Int32,System.Byte,System.Byte,System.Byte,System.Byte)">724<summary>725Bezier726</summary>727<param name="dst"></param>728<param name="vx"></param>729<param name="vy"></param>730<param name="n"></param>731<param name="s">number of steps</param>732<param name="r"></param>733<param name="g"></param>734<param name="b"></param>735<param name="a"></param>736<returns></returns>737</member>738<member name="M:Tao.Sdl.SdlGfx.characterColor(System.IntPtr,System.Int16,System.Int16,System.Char,System.Int32)">739<summary>740Character741</summary>742<param name="dst"></param>743<param name="x"></param>744<param name="y"></param>745<param name="c"></param>746<param name="color"></param>747<returns></returns>748</member>749<member name="M:Tao.Sdl.SdlGfx.characterRGBA(System.IntPtr,System.Int16,System.Int16,System.Char,System.Byte,System.Byte,System.Byte,System.Byte)">750<summary>751Character752</summary>753<param name="dst"></param>754<param name="x"></param>755<param name="y"></param>756<param name="c"></param>757<param name="r"></param>758<param name="g"></param>759<param name="b"></param>760<param name="a"></param>761<returns></returns>762</member>763<member name="M:Tao.Sdl.SdlGfx.stringColor(System.IntPtr,System.Int16,System.Int16,System.String,System.Int32)">764<summary>765String766</summary>767<param name="dst"></param>768<param name="x"></param>769<param name="y"></param>770<param name="c"></param>771<param name="color"></param>772<returns></returns>773</member>774<member name="M:Tao.Sdl.SdlGfx.stringRGBA(System.IntPtr,System.Int16,System.Int16,System.String,System.Byte,System.Byte,System.Byte,System.Byte)">775<summary>776String777</summary>778<param name="dst"></param>779<param name="x"></param>780<param name="y"></param>781<param name="c"></param>782<param name="r"></param>783<param name="g"></param>784<param name="b"></param>785<param name="a"></param>786<returns></returns>787</member>788<member name="M:Tao.Sdl.SdlGfx.gfxPrimitivesSetFont(System.Object,System.Int32,System.Int32)">789<summary>790791</summary>792<param name="fontdata"></param>793<param name="cw">Width</param>794<param name="ch">Height</param>795</member>796<member name="M:Tao.Sdl.SdlGfx.rotozoomSurface(System.IntPtr,System.Double,System.Double,System.Int32)">797<summary>798Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.799'angle' is the rotation in degrees. 'zoom' a scaling factor. If 'smooth' is 1800then the destination 32bit surface is anti-aliased. If the surface is not 8bit801or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.802</summary>803<param name="src"></param>804<param name="angle"></param>805<param name="zoom"></param>806<param name="smooth"></param>807<returns></returns>808</member>809<member name="M:Tao.Sdl.SdlGfx.rotozoomSurfaceXY(System.IntPtr,System.Double,System.Double,System.Double,System.Int32)">810<summary>811Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.812'angle' is the rotation in degrees.813'zoomx' and 'zoomy' are scaling factors that can also be negative.814In this case the corresponding axis is flipped.815If 'smooth' is 1 then the destination 32bit surface is anti-aliased.816If the surface is not 8bit or 32bit RGBA/ABGR it will be converted into817a 32bit RGBA format on the fly.818Note: Flipping currently only works with antialiasing turned off.819</summary>820<param name="src"></param>821<param name="angle"></param>822<param name="zoomx"></param>823<param name="zoomy"></param>824<param name="smooth"></param>825<returns></returns>826</member>827<member name="M:Tao.Sdl.SdlGfx.rotozoomSurfaceSize(System.Int32,System.Int32,System.Double,System.Double,System.Int32@,System.Int32@)">828<summary>829Returns the size of the target surface for a rotozoomSurface() call830</summary>831<param name="width"></param>832<param name="height"></param>833<param name="angle"></param>834<param name="zoom"></param>835<param name="dstheight"></param>836<param name="dstwidth"></param>837<returns></returns>838</member>839<member name="M:Tao.Sdl.SdlGfx.rotozoomSurfaceSizeXY(System.Int32,System.Int32,System.Double,System.Double,System.Double,System.Int32@,System.Int32@)">840<summary>841Returns the size of the target surface for a rotozoomSurface() call842</summary>843<param name="width"></param>844<param name="height"></param>845<param name="angle"></param>846<param name="zoomx"></param>847<param name="zoomy"></param>848<param name="dstheight"></param>849<param name="dstwidth"></param>850<returns></returns>851</member>852<member name="M:Tao.Sdl.SdlGfx.zoomSurface(System.IntPtr,System.Double,System.Double,System.Int32)">853<summary>854Zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface.855'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is 1856then the destination 32bit surface is anti-aliased. If the surface is not 8bit857or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.858</summary>859<param name="src"></param>860<param name="zoomx"></param>861<param name="zoomy"></param>862<param name="smooth"></param>863<returns></returns>864</member>865<member name="M:Tao.Sdl.SdlGfx.zoomSurfaceSize(System.Int32,System.Int32,System.Double,System.Double,System.Int32@,System.Int32@)">866<summary>867Returns the size of the target surface for a zoomSurface() call868</summary>869<param name="width"></param>870<param name="height"></param>871<param name="zoomx"></param>872<param name="zoomy"></param>873<param name="dstheight"></param>874<param name="dstwidth"></param>875<returns></returns>876</member>877<member name="M:Tao.Sdl.SdlGfx.shrinkSurface(System.IntPtr,System.Int32,System.Int32)">878<summary>879Shrinks a 32bit or 8bit 'src' surface ti a newly created 'dst' surface.880'factorx' and 'factory' are the shrinking ratios (i.e. 2=1/2 the size,8813=1/3 the size, etc.) The destination surface is antialiased by averaging882the source box RGBA or Y information. If the surface is not 8bit883or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.884</summary>885<param name="src"></param>886<param name="factorx"></param>887<param name="factory"></param>888<returns></returns>889</member>890<member name="M:Tao.Sdl.SdlGfx.SDL_initFramerate(System.IntPtr)">891<summary>892893</summary>894<remarks>895<p>896Binds to C-function call in SDL_framerate.h.897<code>898void SDL_initFramerate(FPSmanager * manager)899</code>900</p>901</remarks>902<param name="manager">IntPtr to FPSmanager struct</param>903</member>904<member name="M:Tao.Sdl.SdlGfx.SDL_setFramerate(System.IntPtr,System.Int32)">905<summary>906907</summary>908<remarks>909<p>910Binds to C-function call in SDL_framerate.h.911<code>912int SDL_setFramerate(FPSmanager * manager, int rate)913</code>914</p>915</remarks>916<param name="manager">IntPtr to FPSmanager struct</param>917<param name="rate"></param>918<returns>Returns 0 for success and -1 for error</returns>919</member>920<member name="M:Tao.Sdl.SdlGfx.SDL_getFramerate(System.IntPtr)">921<summary>922923</summary>924<remarks>925<p>926Binds to C-function call in SDL_framerate.h.927<code>928int SDL_getFramerate(FPSmanager * manager)929</code>930</p>931</remarks>932<param name="manager">IntPtr to FPSmanager struct</param>933<returns>Returns value for success and -1 for error</returns>934</member>935<member name="M:Tao.Sdl.SdlGfx.SDL_framerateDelay(System.IntPtr)">936<summary>937938</summary>939<remarks>940<p>941Binds to C-function call in SDL_framerate.h.942<code>943void SDL_framerateDelay(FPSmanager * manager)944</code>945</p>946</remarks>947<param name="manager">IntPtr to FPSmanager struct</param>948</member>949<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMMXdetect">950<summary>951Detect MMX capability in CPU952</summary>953<remarks>954<p>955Binds to C-function call in SDL_imageFilter.h.956<code>957int SDL_imageFilterMMXdetect(void)958</code>959</p>960</remarks>961<returns>962Returns 0 for success and -1 for Error.963</returns>964</member>965<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMMXoff">966<summary>967Force use of MMX off.968</summary>969<remarks>970<p>971Binds to C-function call in SDL_imageFilter.h.972<code>973void SDL_imageFilterMMXoff(void)974</code>975</p>976</remarks>977</member>978<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMMXon">979<summary>980Turn possible use of MMX back on981</summary>982<remarks>983<p>984Binds to C-function call in SDL_imageFilter.h.985<code>986void SDL_imageFilterMMXon(void)987</code>988</p>989</remarks>990</member>991<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAdd(System.Byte[],System.Byte[],System.Byte[],System.Int32)">992<summary>993SDL_imageFilterAdd: D = saturation255(S1 + S2)994</summary>995<remarks>996Binds to C-function call in SDL_imageFilter.h.997<code>998int SDL_imageFilterAdd(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)999</code>1000</remarks>1001<param name="Src1">Array of bytes</param>1002<param name="Src2">Array of bytes</param>1003<param name="Dest">Array of bytes returned after operation.</param>1004<param name="length">Size of array</param>1005<returns>Returns 0 for success and -1 for Error.</returns>1006</member>1007<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMean(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1008<summary>1009SDL_imageFilterMean: D = S1/2 + S2/21010</summary>1011<remarks>1012Binds to C-function call in SDL_imageFilter.h.1013<code>1014int SDL_imageFilterMean(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1015</code>1016</remarks>1017<param name="Src1">Array of bytes</param>1018<param name="Src2">Array of bytes</param>1019<param name="Dest">Array of bytes returned after operation.</param>1020<param name="length">Size of array</param>1021<returns>Returns 0 for success and -1 for Error.</returns>1022</member>1023<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterSub(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1024<summary>1025SDL_imageFilterSub: D = saturation0(S1 - S2)1026</summary>1027<remarks>1028Binds to C-function call in SDL_framerate.h.1029<code>1030int SDL_imageFilterSub(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1031</code>1032</remarks>1033<param name="Src1">Array of bytes</param>1034<param name="Src2">Array of bytes</param>1035<param name="Dest">Array of bytes returned after operation.</param>1036<param name="length">Size of array</param>1037<returns>Returns 0 for success and -1 for Error.</returns>1038</member>1039<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAbsDiff(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1040<summary>1041SDL_imageFilterAbsDiff: D = | S1 - S2 |1042</summary>1043<remarks>1044Binds to C-function call in SDL_imageFilter.h.1045<code>1046int SDL_imageFilterAbsDiff(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1047</code>1048</remarks>1049<param name="Src1">Array of bytes</param>1050<param name="Src2">Array of bytes</param>1051<param name="Dest">Array of bytes returned after operation.</param>1052<param name="length">Size of array</param>1053<returns>Returns 0 for success and -1 for Error.</returns>1054</member>1055<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMult(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1056<summary>1057SDL_imageFilterMult: D = saturation(S1 * S2)1058</summary>1059<remarks>1060Binds to C-function call in SDL_imageFilter.h.1061<code>1062int SDL_imageFilterMult(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1063</code>1064</remarks>1065<param name="Src1">Array of bytes</param>1066<param name="Src2">Array of bytes</param>1067<param name="Dest">Array of bytes returned after operation.</param>1068<param name="length">Size of array</param>1069<returns>Returns 0 for success and -1 for Error.</returns>1070</member>1071<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMultNor(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1072<summary>1073SDL_imageFilterMultNor: D = S1 * S2 (non-MMX)1074</summary>1075<remarks>1076Binds to C-function call in SDL_imageFilter.h.1077<code>1078int SDL_imageFilterMultNor(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1079</code>1080</remarks>1081<param name="Src1">Array of bytes</param>1082<param name="Src2">Array of bytes</param>1083<param name="Dest">Array of bytes returned after operation.</param>1084<param name="length">Size of array</param>1085<returns>Returns 0 for success and -1 for Error.</returns>1086</member>1087<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMultDivby2(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1088<summary>1089SDL_imageFilterMultDivby2: D = saturation255(S1/2 * S2)1090</summary>1091<remarks>1092Binds to C-function call in SDL_imageFilter.h.1093<code>1094int SDL_imageFilterMultDivby2(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1095</code>1096</remarks>1097<param name="Src1">Array of bytes</param>1098<param name="Src2">Array of bytes</param>1099<param name="Dest">Array of bytes returned after operation.</param>1100<param name="length">Size of array</param>1101<returns>Returns 0 for success and -1 for Error.</returns>1102</member>1103<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMultDivby4(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1104<summary>1105SDL_imageFilterMultDivby4: D = saturation255(S1/2 * S2)1106</summary>1107<remarks>1108Binds to C-function call in SDL_imageFilter.h.1109<code>1110int SDL_imageFilterMultDivby4(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1111</code>1112</remarks>1113<param name="Src1">Array of bytes</param>1114<param name="Src2">Array of bytes</param>1115<param name="Dest">Array of bytes returned after operation.</param>1116<param name="length">Size of array</param>1117<returns>Returns 0 for success and -1 for Error.</returns>1118</member>1119<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterBitAnd(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1120<summary>1121SDL_imageFilterBitAnd: D = S1 & S21122</summary>1123<remarks>1124Binds to C-function call in SDL_imageFilter.h.1125<code>1126int SDL_imageFilterBitAnd(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1127</code>1128</remarks>1129<param name="Src1">Array of bytes</param>1130<param name="Src2">Array of bytes</param>1131<param name="Dest">Array of bytes returned after operation.</param>1132<param name="length">Size of array</param>1133<returns>Returns 0 for success and -1 for Error.</returns>1134</member>1135<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterBitOr(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1136<summary>1137SDL_imageFilterBitOr: D = S1 | S21138</summary>1139<remarks>1140Binds to C-function call in SDL_imageFilter.h.1141<code>1142int SDL_imageFilterBitAnd(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1143</code>1144</remarks>1145<param name="Src1">Array of bytes</param>1146<param name="Src2">Array of bytes</param>1147<param name="Dest">Array of bytes returned after operation.</param>1148<param name="length">Size of array</param>1149<returns>Returns 0 for success and -1 for Error.</returns>1150</member>1151<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterDiv(System.Byte[],System.Byte[],System.Byte[],System.Int32)">1152<summary>1153SDL_imageFilterDiv: D = S1 / S2 (non-MMX)1154</summary>1155<remarks>1156int SDL_imageFilterDiv(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1157</remarks>1158<param name="Src1">Array of bytes</param>1159<param name="Src2">Array of bytes</param>1160<param name="Dest">Array of bytes returned after operation.</param>1161<param name="length">Size of array</param>1162<returns>Returns 0 for success and -1 for Error.</returns>1163</member>1164<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterBitNegation(System.Byte[],System.Byte[],System.Int32)">1165<summary>1166SDL_imageFilterBitNegation: D = !S1167</summary>1168<remarks>1169Binds to C-function call in SDL_imageFilter.h.1170<code>1171int SDL_imageFilterNegation(unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, int length)1172</code>1173</remarks>1174<param name="Src1">Array of bytes</param>1175<param name="Dest">Array of bytes returned after operation.</param>1176<param name="length">Size of array</param>1177<returns>Returns 0 for success and -1 for Error.</returns>1178</member>1179<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAddByte(System.Byte[],System.Byte[],System.Int32,System.Byte)">1180<summary>1181SDL_imageFilterAddByte: D = saturation255(S + C)1182</summary>1183<remarks>1184Binds to C-function call in SDL_imageFilter.h.1185<code>1186int SDL_imageFilterAddByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1187</code>1188</remarks>1189<param name="Src1">Array of bytes</param>1190<param name="Dest">Array of bytes returned after operation.</param>1191<param name="C">Byte to add</param>1192<param name="length">Size of array</param>1193<returns>Returns 0 for success and -1 for Error.</returns>1194</member>1195<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAddUint(System.Byte[],System.Byte[],System.Int32,System.Int32)">1196<summary>1197SDL_imageFilterAddUint: D = saturation255(S + (uint)C)1198</summary>1199<remarks>1200Binds to C-function call in SDL_imageFilter.h.1201<code>1202int SDL_imageFilterAddUint(unsigned char *Src1, unsigned char *Dest, int length, unsigned int C)1203</code>1204</remarks>1205<param name="Src1">Array of bytes</param>1206<param name="Dest">Array of bytes returned after operation.</param>1207<param name="C">int to add</param>1208<param name="length">Size of array</param>1209<returns>Returns 0 for success and -1 for Error.</returns>1210</member>1211<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAddByteToHalf(System.Byte[],System.Byte[],System.Int32,System.Byte)">1212<summary>1213SDL_imageFilterAddByteToHalf: D = saturation255(S/2 + C)1214</summary>1215<remarks>1216Binds to C-function call in SDL_imageFilter.h.1217<code>1218int SDL_imageFilterAddByteToHalf(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1219</code>1220</remarks>1221<param name="Src1">Array of bytes</param>1222<param name="Dest">Array of bytes returned after operation.</param>1223<param name="C">Byte to add</param>1224<param name="length">Size of array</param>1225<returns>Returns 0 for success and -1 for Error.</returns>1226</member>1227<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterSubByte(System.Byte[],System.Byte[],System.Int32,System.Byte)">1228<summary>1229SDL_imageFilterSubByte: D = saturation0(S - C)1230</summary>1231<remarks>1232Binds to C-function call in SDL_imageFilter.h.1233<code>1234int SDL_imageFilterSubByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1235</code>1236</remarks>1237<param name="Src1">Array of bytes</param>1238<param name="Dest">Array of bytes returned after operation.</param>1239<param name="C">Byte to add</param>1240<param name="length">Size of array</param>1241<returns>Returns 0 for success and -1 for Error.</returns>1242</member>1243<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterSubUint(System.Byte[],System.Byte[],System.Int32,System.Int32)">1244<summary>1245SDL_imageFilterSubUint: D = saturation0(S - (uint)C)1246</summary>1247<remarks>1248Binds to C-function call in SDL_imageFilter.h.1249<code>1250int SDL_imageFilterSubUint(unsigned char *Src1, unsigned char *Dest, int length, unsigned int C)1251</code>1252</remarks>1253<param name="Src1">Array of bytes</param>1254<param name="Dest">Array of bytes returned after operation.</param>1255<param name="C">int to add</param>1256<param name="length">Size of array</param>1257<returns>Returns 0 for success and -1 for Error.</returns>1258</member>1259<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftRight(System.Byte[],System.Byte[],System.Int32,System.Byte)">1260<summary>1261SDL_imageFilterShiftRight: D = saturation0(S >> N)1262</summary>1263<remarks>1264Binds to C-function call in SDL_imageFilter.h.1265<code>1266int SDL_imageFilterShiftRight(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1267</code>1268</remarks>1269<param name="Src1">Array of bytes</param>1270<param name="Dest">Array of bytes returned after operation.</param>1271<param name="N">Shift</param>1272<param name="length">Size of array</param>1273<returns>Returns 0 for success and -1 for Error.</returns>1274</member>1275<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftRightUint(System.Byte[],System.Byte[],System.Int32,System.Byte)">1276<summary>1277SDL_imageFilterShiftRightUint: D = saturation0((uint)S >> N)1278</summary>1279<remarks>1280Binds to C-function call in SDL_imageFilter.h.1281<code>1282int SDL_imageFilterShiftRightUint(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1283</code>1284</remarks>1285<param name="Src1">Array of bytes</param>1286<param name="Dest">Array of bytes returned after operation.</param>1287<param name="N">Shift</param>1288<param name="length">Size of array</param>1289<returns>Returns 0 for success and -1 for Error.</returns>1290</member>1291<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterMultByByte(System.Byte[],System.Byte[],System.Int32,System.Byte)">1292<summary>1293SDL_imageFilterMultByByte: D = saturation255(S * C)1294</summary>1295<remarks>1296Binds to C-function call in SDL_imageFilter.h.1297<code>1298int SDL_imageFilterMultByByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char C)1299</code>1300</remarks>1301<param name="Src1">Array of bytes</param>1302<param name="Dest">Array of bytes returned after operation.</param>1303<param name="C">Byte</param>1304<param name="length">Size of array</param>1305<returns>Returns 0 for success and -1 for Error.</returns>1306</member>1307<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftRightAndMultByByte(System.Byte[],System.Byte[],System.Int32,System.Byte,System.Byte)">1308<summary>1309SDL_imageFilterShiftRightAndMultByByte: D = saturation255((S >> N) * C)1310</summary>1311<remarks>1312Binds to C-function call in SDL_imageFilter.h.1313<code>1314int SDL_imageFilterShiftRightAndMultByByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N, unsigned char C)1315</code>1316</remarks>1317<param name="Src1">Array of bytes</param>1318<param name="Dest">Array of bytes returned after operation.</param>1319<param name="C">Byte</param>1320<param name="N">Shift</param>1321<param name="length">Size of array</param>1322<returns>Returns 0 for success and -1 for Error.</returns>1323</member>1324<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftLeftByte(System.Byte[],System.Byte[],System.Int32,System.Byte)">1325<summary>1326SDL_imageFilterShiftLeftByte: D = (S << N)1327</summary>1328<remarks>1329Binds to C-function call in SDL_imageFilter.h.1330<code>1331int SDL_imageFilterShiftLeftByte(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N)1332</code>1333</remarks>1334<param name="Src1">Array of bytes</param>1335<param name="Dest">Array of bytes returned after operation.</param>1336<param name="N">Shift</param>1337<param name="length">Size of array</param>1338<returns>Returns 0 for success and -1 for Error.</returns>1339</member>1340<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftLeft(System.Byte[],System.Byte[],System.Int32,System.Byte)">1341<summary>1342SDL_imageFilterShiftLeft: D = saturation255(S << N)1343</summary>1344<remarks>1345Binds to C-function call in SDL_imageFilter.h.1346<code>1347int SDL_imageFilterShiftLeft(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N)1348</code>1349</remarks>1350<param name="Src1">Array of bytes</param>1351<param name="Dest">Array of bytes returned after operation.</param>1352<param name="N">Shift</param>1353<param name="length">Size of array</param>1354<returns>Returns 0 for success and -1 for Error.</returns>1355</member>1356<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterShiftLeftUint(System.Byte[],System.Byte[],System.Int32,System.Byte)">1357<summary>1358SDL_imageFilterShiftLeftUint: D = ((uint)S << N)1359</summary>1360<remarks>1361Binds to C-function call in SDL_imageFilter.h.1362<code>1363int SDL_imageFilterShiftLeftUint(unsigned char *Src1, unsigned char *Dest, int length, unsigned char N)1364</code>1365</remarks>1366<param name="Src1">Array of bytes</param>1367<param name="Dest">Array of bytes returned after operation.</param>1368<param name="N">Shift</param>1369<param name="length">Size of array</param>1370<returns>Returns 0 for success and -1 for Error.</returns>1371</member>1372<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterBinarizeUsingThreshold(System.Byte[],System.Byte[],System.Int32,System.Byte)">1373<summary>1374SDL_imageFilterBinarizeUsingThreshold: D = S >= T ? 255:01375</summary>1376<remarks>1377Binds to C-function call in SDL_imageFilter.h.1378<code>1379int SDL_imageFilterBinarizeUsingThreshold(unsigned char *Src1, unsigned char *Dest, int length, unsigned char T);1380</code>1381</remarks>1382<param name="Src1">Array of bytes</param>1383<param name="Dest">Array of bytes returned after operation.</param>1384<param name="T">Threshold</param>1385<param name="length">Size of array</param>1386<returns>Returns 0 for success and -1 for Error.</returns>1387</member>1388<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterClipToRange(System.Byte[],System.Byte[],System.Int32,System.Byte,System.Byte)">1389<summary>1390SDL_imageFilterClipToRange: D = (S >= Tmin) & (S <= Tmax) 255:01391</summary>1392<remarks>1393Binds to C-function call in SDL_imageFilter.h.1394<code>1395int SDL_imageFilterClipToRange(unsigned char *Src1, unsigned char *Dest, int length, unsigned char Tmin, unsigned char Tmax);1396</code>1397</remarks>1398<param name="Src1">Array of bytes</param>1399<param name="Dest">Array of bytes returned after operation.</param>1400<param name="Tmin">Threshold</param>1401<param name="Tmax">Threshold</param>1402<param name="length">Size of array</param>1403<returns>Returns 0 for success and -1 for Error.</returns>1404</member>1405<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterNormalizeLinear(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">1406<summary>1407SDL_imageFilterNormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)1408</summary>1409<remarks>1410Binds to C-function call in SDL_imageFilter.h.1411<code>1412int SDL_imageFilterNormalizeLinear(unsigned char *Src1, unsigned char *Dest, int length, int Cmin, int Cmax, int Nmin, int Nmax);1413</code>1414</remarks>1415<param name="Src1">Array of bytes</param>1416<param name="Dest">Array of bytes returned after operation.</param>1417<param name="Nmin">Threshold</param>1418<param name="Nmax">Threshold</param>1419<param name="Cmin">Threshold</param>1420<param name="Cmax">Threshold</param>1421<param name="length">Size of array</param>1422<returns>Returns 0 for success and -1 for Error.</returns>1423</member>1424<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel3x3Divide(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1425<summary>1426SDL_imageFilterConvolveKernel3x3Divide: Dij = saturation0and255( ... ). For MMX processors only.1427</summary>1428<remarks>1429Binds to C-function call in SDL_imageFilter.h.1430<code>1431int SDL_imageFilterConvolveKernel3x3Divide(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor);1432</code>1433</remarks>1434<param name="Src1">Array of bytes</param>1435<param name="Dest">Array of bytes returned after operation.</param>1436<param name="rows">Threshold</param>1437<param name="columns">Threshold</param>1438<param name="Kernel">Size of array</param>1439<param name="Divisor"></param>1440<returns>Returns 0 for success and -1 for Error.</returns>1441</member>1442<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel5x5Divide(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1443<summary>1444SDL_imageFilterConvolveKernel5x5Divide: Dij = saturation0and255( ... ). For MMX processors only.1445</summary>1446<remarks>1447Binds to C-function call in SDL_imageFilter.h.1448<code>1449int SDL_imageFilterConvolveKernel5x5Divide(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor);1450</code>1451</remarks>1452<param name="Src1">Array of bytes</param>1453<param name="Dest">Array of bytes returned after operation.</param>1454<param name="columns"></param>1455<param name="Divisor"></param>1456<param name="Kernel"></param>1457<param name="rows"></param>1458<returns>Returns 0 for success and -1 for Error.</returns>1459</member>1460<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel7x7Divide(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1461<summary>1462SDL_imageFilterConvolveKernel7x7Divide: Dij = saturation0and255( ... ). For MMX processors only.1463</summary>1464<remarks>1465Binds to C-function call in SDL_imageFilter.h.1466<code>1467int SDL_imageFilterConvolveKernel7x7Divide(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor);1468</code>1469</remarks>1470<param name="Src1">Array of bytes</param>1471<param name="Dest">Array of bytes returned after operation.</param>1472<param name="columns"></param>1473<param name="Divisor"></param>1474<param name="Kernel"></param>1475<param name="rows"></param>1476<returns>Returns 0 for success and -1 for Error.</returns>1477</member>1478<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel9x9Divide(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1479<summary>1480SDL_imageFilterConvolveKernel9x9Divide: Dij = saturation0and255( ... ). For MMX processors only.1481</summary>1482<remarks>1483Binds to C-function call in SDL_imageFilter.h.1484<code>1485int SDL_imageFilterConvolveKernel9x9Divide(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor);1486</code>1487</remarks>1488<param name="Src1">Array of bytes</param>1489<param name="Dest">Array of bytes returned after operation.</param>1490<param name="columns"></param>1491<param name="Divisor"></param>1492<param name="Kernel"></param>1493<param name="rows"></param>1494<returns>Returns 0 for success and -1 for Error.</returns>1495</member>1496<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel3x3ShiftRight(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1497<summary>1498SDL_imageFilterConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... ). For MMX processors only.1499</summary>1500<remarks>1501Binds to C-function call in SDL_imageFilter.h.1502<code>1503int SDL_imageFilterConvolveKernel3x3ShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift);1504</code>1505</remarks>1506<param name="Src1">Array of bytes</param>1507<param name="Dest">Array of bytes returned after operation.</param>1508<param name="columns"></param>1509<param name="NRightShift"></param>1510<param name="Kernel"></param>1511<param name="rows"></param>1512<returns>Returns 0 for success and -1 for Error.</returns>1513</member>1514<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel5x5ShiftRight(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1515<summary>1516SDL_imageFilterConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... ). For MMX processors only.1517</summary>1518<remarks>1519Binds to C-function call in SDL_imageFilter.h.1520<code>1521int SDL_imageFilterConvolveKernel5x5ShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift);1522</code>1523</remarks>1524<param name="Src1">Array of bytes</param>1525<param name="Dest">Array of bytes returned after operation.</param>1526<param name="columns"></param>1527<param name="NRightShift"></param>1528<param name="Kernel"></param>1529<param name="rows"></param>1530<returns>Returns 0 for success and -1 for Error.</returns>1531</member>1532<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel7x7ShiftRight(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1533<summary>1534SDL_imageFilterConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... ). For MMX processors only.1535</summary>1536<remarks>1537Binds to C-function call in SDL_imageFilter.h.1538<code>1539int SDL_imageFilterConvolveKernel7x7ShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift);1540</code>1541</remarks>1542<param name="Src1">Array of bytes</param>1543<param name="Dest">Array of bytes returned after operation.</param>1544<param name="rows">Threshold</param>1545<param name="columns">Threshold</param>1546<param name="Kernel">Size of array</param>1547<param name="NRightShift"></param>1548<returns>Returns 0 for success and -1 for Error.</returns>1549</member>1550<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterConvolveKernel9x9ShiftRight(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int16[],System.Byte)">1551<summary>1552SDL_imageFilterConvolveKernel9x9ShiftRight: Dij = saturation0and255( ... ). For MMX processors only.1553</summary>1554<remarks>1555Binds to C-function call in SDL_imageFilter.h.1556<code>1557int SDL_imageFilterConvolveKernel9x9ShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift);1558</code>1559</remarks>1560<param name="Src1">Array of bytes</param>1561<param name="Dest">Array of bytes returned after operation.</param>1562<param name="rows">Threshold</param>1563<param name="columns">Threshold</param>1564<param name="Kernel">Size of array</param>1565<param name="NRightShift"></param>1566<returns>Returns 0 for success and -1 for Error.</returns>1567</member>1568<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterSobelX(System.Byte[],System.Byte[],System.Int32,System.Int32)">1569<summary>1570SDL_imageFilterSobelX: Dij = saturation255( ... ). For MMX processors only.1571</summary>1572<remarks>1573Binds to C-function call in SDL_imageFilter.h.1574<code>1575int SDL_imageFilterSobelX(unsigned char *Src, unsigned char *Dest, int rows, int columns)1576</code>1577</remarks>1578<param name="Src1">Array of bytes</param>1579<param name="Dest">Array of bytes returned after operation.</param>1580<param name="rows">Threshold</param>1581<param name="columns">Threshold</param>1582<returns>Returns 0 for success and -1 for Error.</returns>1583</member>1584<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterSobelXShiftRight(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Byte)">1585<summary>1586SDL_imageFilterSobelXShiftRight: Dij = saturation255( ... ). For MMX processors only.1587</summary>1588<remarks>1589Binds to C-function call in SDL_imageFilter.h.1590<code>1591int SDL_imageFilterSobelXShiftRight(unsigned char *Src, unsigned char *Dest, int rows, int columns, unsigned char NRightShift);1592</code>1593</remarks>1594<param name="Src1">Array of bytes</param>1595<param name="Dest">Array of bytes returned after operation.</param>1596<param name="rows">Threshold</param>1597<param name="columns">Threshold</param>1598<param name="NRightShift"></param>1599<returns>Returns 0 for success and -1 for Error.</returns>1600</member>1601<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterAlignStack">1602<summary>1603Align stack to 32 byte boundary -- Functionality untested! --. For MMX processors only.1604</summary>1605<remarks>1606Binds to C-function call in SDL_imageFilter.h.1607<code>1608void SDL_imageFilterAlignStack(void)1609</code>1610</remarks>1611</member>1612<member name="M:Tao.Sdl.SdlGfx.SDL_imageFilterRestoreStack">1613<summary>1614Restore stack to 32 byte boundary -- Functionality untested! --. For MMX processors only.1615</summary>1616<remarks>1617Binds to C-function call in SDL_imageFilter.h.1618<code>1619void SDL_imageFilterRestoreStack(void)1620</code>1621</remarks>1622</member>1623<member name="M:Tao.Sdl.SdlGfx.SDL_gfxBlitRGBA(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect)">1624<summary>16251626</summary>1627<remarks>1628Binds to C-function call in SDL_gfxBlitFunc.h.1629<code>1630int SDL_gfxBlitRGBA(SDL_Surface * src, SDL_Rect * srcrect, SDL_Surface * dst, SDL_Rect * dstrect);1631</code>1632</remarks>1633</member>1634<member name="M:Tao.Sdl.SdlGfx.SDL_gfxSetAlpha(System.IntPtr,System.Byte)">1635<summary>16361637</summary>1638<remarks>1639Binds to C-function call in SDL_gfxBlitFunc.h.1640<code>1641int SDL_gfxSetAlpha(SDL_Surface * src, Uint8 a);1642</code>1643</remarks>1644</member>1645<member name="T:Tao.Sdl.SdlGfx.tColorRGBA">1646<summary>16471648</summary>1649</member>1650<member name="F:Tao.Sdl.SdlGfx.tColorRGBA.r">1651<summary>16521653</summary>1654</member>1655<member name="F:Tao.Sdl.SdlGfx.tColorRGBA.g">1656<summary>16571658</summary>1659</member>1660<member name="F:Tao.Sdl.SdlGfx.tColorRGBA.b">1661<summary>16621663</summary>1664</member>1665<member name="F:Tao.Sdl.SdlGfx.tColorRGBA.a">1666<summary>16671668</summary>1669</member>1670<member name="T:Tao.Sdl.SdlGfx.tColorY">1671<summary>16721673</summary>1674</member>1675<member name="F:Tao.Sdl.SdlGfx.tColorY.y">1676<summary>16771678</summary>1679</member>1680<member name="T:Tao.Sdl.SdlGfx.FPSmanager">1681<summary>16821683</summary>1684</member>1685<member name="F:Tao.Sdl.SdlGfx.FPSmanager.framecount">1686<summary>16871688</summary>1689</member>1690<member name="F:Tao.Sdl.SdlGfx.FPSmanager.rateticks">1691<summary>16921693</summary>1694</member>1695<member name="F:Tao.Sdl.SdlGfx.FPSmanager.lastticks">1696<summary>16971698</summary>1699</member>1700<member name="F:Tao.Sdl.SdlGfx.FPSmanager.rate">1701<summary>17021703</summary>1704</member>1705<member name="T:Tao.Sdl.SdlTtf">1706<summary>1707This library supports Sdl_ttf 2.0.8.1708This library is a wrapper around the excellent FreeType 1.2 library,1709available at: http://www.freetype.org1710<p>1711WARNING: There may be patent issues with using the FreeType library.1712Check the FreeType website for up-to-date details.1713</p>1714<p>1715This library allows you to use TrueType fonts to render text in SDL1716applications.1717</p>1718<p>1719Be careful when including fonts with your application, as many of1720them are copyrighted.1721The Microsoft fonts, for example, are not freely redistributable1722and even the free "web"1723fonts they provide are only redistributable in their special1724executable installer form (May 1998).1725There are plenty of freeware and shareware fonts available on the1726Internet though, and may suit your purposes.1727</p>1728</summary>1729<remarks>1730SDL_ttf supports loading fonts from TrueType font files,1731normally ending in .ttf, though some .fon files are also valid for1732use. Note that most fonts are copyrighted, check the license on the1733font before you use and redistribute1734</remarks>1735</member>1736<member name="F:Tao.Sdl.SdlTtf.SDL_TTF_NATIVE_LIBRARY">1737<summary>1738Specifies SdlTtf's native library archive.1739</summary>1740<remarks>1741Specifies SDL_ttf.dll everywhere; will be mapped via .config for mono.1742</remarks>1743</member>1744<member name="F:Tao.Sdl.SdlTtf.CALLING_CONVENTION">1745<summary>1746Specifies the calling convention.1747</summary>1748<remarks>1749Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>1750for Windows and Linux.1751</remarks>1752</member>1753<member name="F:Tao.Sdl.SdlTtf.TTF_MAJOR_VERSION">1754<summary>1755Major Version1756</summary>1757</member>1758<member name="F:Tao.Sdl.SdlTtf.TTF_MINOR_VERSION">1759<summary>1760Minor Version1761</summary>1762</member>1763<member name="F:Tao.Sdl.SdlTtf.TTF_PATCHLEVEL">1764<summary>1765Patch Version1766</summary>1767</member>1768<member name="F:Tao.Sdl.SdlTtf.TTF_STYLE_NORMAL">1769<summary>1770Used to indicate regular, normal, plain rendering style.1771</summary>1772</member>1773<member name="F:Tao.Sdl.SdlTtf.TTF_STYLE_BOLD">1774<summary>1775Used to indicate bold rendering style.1776This is used a bitmask along with other styles.1777</summary>1778</member>1779<member name="F:Tao.Sdl.SdlTtf.TTF_STYLE_ITALIC">1780<summary>1781Used to indicate italicized rendering style.1782This is used a bitmask along with other styles.1783</summary>1784</member>1785<member name="F:Tao.Sdl.SdlTtf.TTF_STYLE_UNDERLINE">1786<summary>1787Used to indicate underlined rendering style.1788This is used a bitmask along with other styles.1789</summary>1790</member>1791<member name="F:Tao.Sdl.SdlTtf.UNICODE_BOM_NATIVE">1792<summary>1793This allows you to switch byte-order of UNICODE text data1794to native order, meaning the mode of your CPU. This is meant1795to be used in a UNICODE string that you are using with the1796SDL_ttf API.1797</summary>1798</member>1799<member name="F:Tao.Sdl.SdlTtf.UNICODE_BOM_SWAPPED">1800<summary>1801This allows you to switch byte-order of UNICODE text data to1802swapped order, meaning the reversed mode of your CPU.1803So if your CPU is LSB, then the data will be interpreted1804as MSB. This is meant to be used in a UNICODE string1805that you are using with the SDL_ttf API.1806</summary>1807</member>1808<member name="M:Tao.Sdl.SdlTtf.TTF_VERSION">1809<summary>1810This method can be used to fill a version structure with the compile-time1811version of the SDL_ttf library.1812</summary>1813<returns>1814This function returns a <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct containing the1815compiled version number1816</returns>1817<remarks>1818<p>1819Binds to C-function call in SDL_ttf.h:1820<code>#define SDL_TTF_VERSION(X)1821{1822(X)->major = SDL_TTF_MAJOR_VERSION;1823(X)->minor = SDL_TTF_MINOR_VERSION;1824(X)->patch = SDL_TTF_PATCHLEVEL;1825}</code>1826</p>1827</remarks>1828</member>1829<member name="M:Tao.Sdl.SdlTtf.TTF_Linked_Version">1830<summary>1831Using this you can compare the runtime version to the1832version that you compiled with.1833</summary>1834<returns>1835This function gets the version of the dynamically1836linked SDL_ttf library in an <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct.1837</returns>1838<remarks>1839<p>1840Binds to C-function call in SDL_ttf.h:1841<code>const SDL_version * TTF_Linked_Version(void)</code>1842</p>1843</remarks>1844</member>1845<member name="M:Tao.Sdl.SdlTtf.TTF_ByteSwappedUNICODE(System.Int32)">1846<summary>1847This function tells the library whether UNICODE text is generally1848byteswapped. A UNICODE BOM character in a string will override1849this setting for the remainder of that string.1850</summary>1851<remarks>1852This function tells SDL_ttf whether UNICODE (Uint16 per character)1853text is generally byteswapped. A UNICODE_BOM_NATIVE or1854UNICODE_BOM_SWAPPED character in a string will temporarily1855override this setting for the remainder of that string,1856however this setting will be restored for the next one.1857The default mode is non-swapped, native endianess of the CPU.1858<p>Binds to C-function in SDL_ttf.h1859<code>1860void TTF_ByteSwappedUNICODE(int swapped)1861</code></p>1862</remarks>1863<param name="swapped">1864if non-zero then UNICODE data is byte swapped relative to the1865CPU's native endianess.<p>1866if zero, then do not swap UNICODE data,1867use the CPU's native endianess.</p>1868</param>1869<example>1870<code>1871// Turn on byte swapping for UNICODE text1872TTF_ByteSwappedUNICODE(1);1873</code>1874</example>1875<returns></returns>1876</member>1877<member name="M:Tao.Sdl.SdlTtf.TTF_Init">1878<summary>1879Initialize the TTF engine - returns 0 if successful, -1 on error1880</summary>1881<remarks>1882Initialize the truetype font API.1883<p>1884This must be called before using other functions in this1885library, excepting TTF_WasInit.</p>1886<p>1887SDL does not have to be initialized before this call.</p>1888<p>Binds to C-function in SDL_ttf.h1889<code>1890int TTF_Init()1891</code></p>1892</remarks>1893<example>1894<code>1895if(TTF_Init()==-1) {1896printf("TTF_Init: %s\n", TTF_GetError());1897exit(2);1898}1899</code>1900</example>1901<returns>19020 on success, -1 on errors1903</returns>1904<seealso cref="M:Tao.Sdl.SdlTtf.TTF_WasInit"/>1905<seealso cref="M:Tao.Sdl.SdlTtf.TTF_Quit"/>1906</member>1907<member name="M:Tao.Sdl.SdlTtf.TTF_OpenFont(System.String,System.Int32)">1908<summary>1909Open a font file and create a font of the specified point size.1910Some .fon fonts will have several sizes embedded in the file, so the1911point size becomes the index of choosing which size.1912If the value1913is too high, the last indexed size will be the default.1914</summary>1915<param name="file">File name to load font from.</param>1916<param name="ptsize">Point size (based on 72DPI) to load font as.1917This basically translates to pixel height.</param>1918<remarks>1919Load file for use as a font, at ptsize size.1920This is actually TTF_OpenFontIndex(file, ptsize, 0).1921This can load TTF and FON files.1922<p>Binds to C-function in SDL_ttf.h1923<code>1924TTF_Font *TTF_OpenFont(const char *file, int ptsize)1925</code></p>1926</remarks>1927<example>1928<code>1929// load font.ttf at size 16 into font1930TTF_Font *font;1931font=TTF_OpenFont("font.ttf", 16);1932if(!font)1933{1934printf("TTF_OpenFont: %s\n", TTF_GetError());1935// handle error1936}1937</code>1938</example>1939<returns>1940a pointer to the font as a TTF_Font. NULL is returned on errors.1941</returns>1942<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndex(System.String,System.Int32,System.Int64)"/>1943<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontRW(System.IntPtr,System.Int32,System.Int32)"/>1944<seealso cref="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)"/>1945</member>1946<member name="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndex(System.String,System.Int32,System.Int64)">1947<summary>1948Open a font file and create a font of the specified point size.1949Some .fon fonts will have several sizes embedded in the file, so the1950point size becomes the index of choosing which size.1951If the value1952is too high, the last indexed size will be the default.1953</summary>1954<param name="file">File name to load font from.</param>1955<param name="ptsize">1956Point size (based on 72DPI) to load font as.1957This basically translates to pixel height.1958</param>1959<param name="index">1960choose a font face from a multiple font face containing file.1961The first face is always index 0.1962</param>1963<remarks>1964Load file, face index, for use as a font, at ptsize size.1965This is actually TTF_OpenFontIndexRW(SDL_RWFromFile(file),1966ptsize, index), but checks that the RWops it creates is1967not NULL. This can load TTF and FON files.1968<p>Binds to C-function in SDL_ttf.h1969<code>1970TTF_Font *TTF_OpenFontIndex(const char *file, int ptsize, long index)1971</code></p>1972</remarks>1973<example>1974<code>1975// load font.ttf, face 0, at size 16 into font1976TTF_Font *font;1977font=TTF_OpenFontIndex("font.ttf", 16, 0);1978if(!font)1979{1980printf("TTF_OpenFontIndex: %s\n", TTF_GetError());1981// handle error1982}1983</code>1984</example>1985<returns>1986a pointer to the font as a TTF_Font. NULL is returned on errors.1987</returns>1988<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndexRW(System.IntPtr,System.Int32,System.Int32,System.Int64)"/>1989<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFont(System.String,System.Int32)"/>1990<seealso cref="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)"/>1991</member>1992<member name="M:Tao.Sdl.SdlTtf.TTF_OpenFontRW(System.IntPtr,System.Int32,System.Int32)">1993<summary>1994Open a font file suing RWOps and create a font of the specified point size.1995Some .fon fonts will have several sizes embedded in the file, so the1996point size becomes the index of choosing which size.1997If the value1998is too high, the last indexed size will be the default.1999</summary>2000<param name="src">The font is loaded from this.</param>2001<param name="freesrc">2002A non-zero value mean is will automatically close/free the2003src for you.2004</param>2005<param name="ptsize">2006Point size (based on 72DPI) to load font as.2007This basically translates to pixel height.2008</param>2009<remarks>2010Load src for use as a font, at ptsize size.2011This is actually TTF_OpenFontIndexRW(src, freesrc, ptsize, 0).2012This can load TTF and FON formats.2013Using SDL_RWops is not covered here,2014but they enable you to load from almost any source.2015<p>2016NOTE: src is not checked for NULL, so be careful.</p>2017<p>Binds to C-function in SDL_ttf.h2018<code>2019TTF_Font *TTF_OpenFontRW(SDL_RWops *src, int freesrc, int ptsize)2020</code></p>2021</remarks>2022<example>2023<code>2024// load font.ttf at size 16 into font2025TTF_Font *font;2026font=TTF_OpenFontRW(SDL_RWFromFile("font.ttf"), 1, 16);2027if(!font)2028{2029printf("TTF_OpenFontRW: %s\n", TTF_GetError());2030// handle error2031}2032</code>2033</example>2034<returns>2035a pointer to the font as a TTF_Font. NULL is returned on errors.2036</returns>2037<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndexRW(System.IntPtr,System.Int32,System.Int32,System.Int64)"/>2038<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFont(System.String,System.Int32)"/>2039<seealso cref="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)"/>2040</member>2041<member name="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndexRW(System.IntPtr,System.Int32,System.Int32,System.Int64)">2042<summary>2043Open a font file using RWOps with an index and create2044a font of the specified point size.2045Some .fon fonts will have several sizes embedded in the file, so the2046point size becomes the index of choosing which size.2047If the value2048is too high, the last indexed size will be the default.2049</summary>2050<param name="freesrc">2051A non-zero value mean is will automatically close/free2052the src for you.2053</param>2054<param name="index">2055choose a font face from a multiple font face containing file.2056The first face is always index 0.2057</param>2058<param name="src">The font is loaded from this.</param>2059<param name="ptsize">2060Point size (based on 72DPI) to load font as.2061This basically translates to pixel height.2062</param>2063<remarks>2064Load src, face index, for use as a font, at ptsize size.2065This can load TTF and FON formats.2066Using SDL_RWops is not covered here,2067but they enable you to load from almost any source.20682069NOTE: src is not checked for NULL, so be careful.2070<p>Binds to C-function in SDL_ttf.h2071<code>2072TTF_Font *TTF_OpenFontIndexRW(SDL_RWops *src, int freesrc, int ptsize, long index)2073</code></p>2074</remarks>2075<example>2076<code>2077// load font.ttf, face 0, at size 16 into font2078TTF_Font *font;2079font=TTF_OpenFontRW(SDL_RWFromFile("font.ttf"), 1, 16, 0);2080if(!font)2081{2082printf("TTF_OpenFontIndexRW: %s\n", TTF_GetError());2083// handle error2084}2085</code>2086</example>2087<returns>2088a pointer to the font as a TTF_Font. NULL is returned on errors.2089</returns>2090<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndex(System.String,System.Int32,System.Int64)"/>2091<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontRW(System.IntPtr,System.Int32,System.Int32)"/>2092<seealso cref="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)"/>2093</member>2094<member name="M:Tao.Sdl.SdlTtf.TTF_SetFontStyle(System.IntPtr,System.Int32)">2095<summary>2096Set the font style2097This font style is implemented by modifying the font glyphs, and2098doesn't reflect any inherent properties of the truetype font file.2099</summary>2100<param name="font">The loaded font to get the style of </param>2101<param name="style">2102A bitmask of the desired style composed2103from the TTF_STYLE_* defined values2104</param>2105<remarks>2106Set the rendering style of the loaded font.2107<p>2108NOTE: Passing a NULL font into this function will cause a segfault.2109</p>2110<p>2111NOTE: This will flush the internal cache of previously rendered2112glyphs, even if there is no change in style, so it may be best2113to check the current style using TTF_GetFontStyle first.2114</p>2115<p>2116NOTE: I've seen that combining TTF_STYLE_UNDERLINE with anything2117can cause a segfault, other combinations may also do this.2118Some brave soul may find the cause of this and fix it...2119</p>2120<p>Binds to C-function in SDL_ttf.h2121<code>2122void TTF_SetFontStyle(TTF_Font *font, int style)2123</code></p>2124</remarks>2125<example>2126<code>2127// set the loaded font's style to bold italics2128//TTF_Font *font;2129TTF_SetFontStyle(font, TTF_STYLE_BOLD|TTF_STYLE_ITALIC);21302131// render some text in bold italics...21322133// set the loaded font's style back to normal2134TTF_SetFontStyle(font, TTF_STYLE_NORMAL);2135</code>2136</example>2137<seealso cref="M:Tao.Sdl.SdlTtf.TTF_GetFontStyle(System.IntPtr)"/>2138</member>2139<member name="M:Tao.Sdl.SdlTtf.TTF_GetFontStyle(System.IntPtr)">2140<summary>2141Retrieve the font style2142This font style is implemented by modifying the font glyphs, and2143doesn't reflect any inherent properties of the truetype font file.2144</summary>2145<remarks>2146Get the rendering style of the loaded font.2147<p>2148NOTE: Passing a NULL font into this function will cause a segfault.2149</p>2150</remarks>2151<param name="font">The loaded font to get the style of </param>2152<returns>2153The style as a bitmask composed of the following masks:2154<br>TTF_STYLE_BOLD</br>2155<br>TTF_STYLE_ITALIC</br>2156<br>TTF_STYLE_UNDERLINE</br>2157<p>If no style is set then TTF_STYLE_NORMAL is returned.</p>2158<p>Binds to C-function in SDL_ttf.h2159<code>2160int TTF_GetFontStyle(TTF_Font *font)2161</code></p>2162</returns>2163<example>2164<code>2165// get the loaded font's style2166//TTF_Font *font;2167int style;2168style=TTF_GetFontStyle(font);2169printf("The font style is:");2170if(style==TTF_STYLE_NORMAL)2171printf(" normal");2172else2173{2174if(style&TTF_STYLE_BOLD)2175printf(" bold");2176if(style&TTF_STYLE_ITALIC)2177printf(" italic");2178if(style&TTF_STYLE_UNDERLINE)2179printf(" underline");2180}2181printf("\n");2182</code>2183</example>2184<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SetFontStyle(System.IntPtr,System.Int32)"/>2185</member>2186<member name="M:Tao.Sdl.SdlTtf.TTF_FontHeight(System.IntPtr)">2187<summary>2188Get the total height of the font - usually equal to point size2189</summary>2190<param name="font">2191The loaded font to get the max height of2192</param>2193<remarks>2194Get the maximum pixel height of all glyphs of the loaded font.2195You may use this height for rendering text as close together2196vertically as possible, though adding at least one pixel height2197to it will space it so they can't touch. Remember that SDL_ttf2198doesn't handle multiline printing, so you are responsible for2199line spacing, see the TTF_FontLineSkip as well.2200<p>2201NOTE: Passing a NULL font into this function will cause a segfault.</p>2202</remarks>2203<returns>2204The maximum pixel height of all glyphs in the font.2205<p>Binds to C-function in SDL_ttf.h2206<code>2207int TTF_FontHeight(TTF_Font *font)2208</code></p>2209</returns>2210<example>2211<code>2212// get the loaded font's max height2213//TTF_Font *font;2214printf("The font max height is: %d\n", TTF_FontHeight(font));2215</code>2216</example>2217<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontAscent(System.IntPtr)"/>2218<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontDescent(System.IntPtr)"/>2219<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontLineSkip(System.IntPtr)"/>2220</member>2221<member name="M:Tao.Sdl.SdlTtf.TTF_FontAscent(System.IntPtr)">2222<summary>2223Get font max ascent (y above origin).2224Get the offset from the baseline to the top of the font2225This is a positive value, relative to the baseline.2226</summary>2227<param name="font">The loaded font to get the ascent2228(height above baseline) of </param>2229<remarks>2230Get the maximum pixel ascent of all glyphs of the loaded font.2231This can also be interpreted as the distance from the top of2232the font to the baseline.2233<p>2234It could be used when drawing an individual glyph relative to2235a top point, by combining it with the glyph's maxy metric to2236resolve the top of the rectangle used when blitting the glyph2237on the screen.</p>2238<p>2239rect.y = top + TTF_FontAscent(font) - glyph_metric.maxy;2240</p>2241<p>NOTE: Passing a NULL font into this function will2242cause a segfault.</p>2243<p>Binds to C-function in SDL_ttf.h2244<code>2245int TTF_FontAscent(TTF_Font *font)2246</code></p>2247</remarks>2248<example>2249<code>2250// get the loaded font's max ascent2251//TTF_Font *font;22522253printf("The font ascent is: %d\n", TTF_FontAscent(font));2254</code>2255</example>2256<returns>2257The maximum pixel ascent of all glyphs in the font.2258</returns>2259<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontHeight(System.IntPtr)"/>2260<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontDescent(System.IntPtr)"/>2261<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontLineSkip(System.IntPtr)"/>2262</member>2263<member name="M:Tao.Sdl.SdlTtf.TTF_FontDescent(System.IntPtr)">2264<summary>2265Get font min descent (y below origin).2266Get the offset from the baseline to the bottom of the font2267This is a negative value, relative to the baseline.2268</summary>2269<param name="font">2270The loaded font to get the descent (height below baseline) of2271</param>2272<remarks>2273Get the maximum pixel descent of all glyphs of the loaded font.2274This can also be interpreted as the distance from the baseline2275to the bottom of the font.2276It could be used when drawing an individual glyph relative to a2277bottom point, by combining it with the glyph's maxy metric2278to resolve the top of the rectangle used when blitting the2279glyph on the screen.2280<p>2281rect.y = bottom - TTF_FontDescent(font) - glyph_metric.maxy;2282</p>2283<p>NOTE: Passing a NULL font into this function will cause a segfault.</p>2284<p>Binds to C-function in SDL_ttf.h2285<code>2286int TTF_FontDescent(TTF_Font *font)2287</code></p>2288</remarks>2289<example>2290<code>2291// get the loaded font's max descent2292//TTF_Font *font;22932294printf("The font descent is: %d\n", TTF_FontDescent(font));2295</code>2296</example>2297<returns>2298The maximum pixel height of all glyphs in the font.2299</returns>2300<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontHeight(System.IntPtr)"/>2301<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontAscent(System.IntPtr)"/>2302<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontLineSkip(System.IntPtr)"/>2303</member>2304<member name="M:Tao.Sdl.SdlTtf.TTF_FontLineSkip(System.IntPtr)">2305<summary>2306Get the recommended spacing between lines of text for this font.2307</summary>2308<param name="font">2309The loaded font to get the line skip height of2310</param>2311<remarks>2312Get the reccomended pixel height of a rendered line of text2313of the loaded font. This is usually larger than the2314TTF_FontHeight of the font.2315<p>2316NOTE: Passing a NULL font into this function will cause a segfault.2317</p>2318<p>Binds to C-function in SDL_ttf.h2319<code>2320int TTF_FontLineSkip(TTF_Font *font)2321</code></p>2322</remarks>2323<example>2324<code>2325// get the loaded font's max descent2326//TTF_Font *font;23272328printf("The font descent is: %d\n", TTF_FontDescent(font));2329</code>2330</example>2331<returns>2332The maximum pixel height of all glyphs in the font.2333</returns>2334<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontHeight(System.IntPtr)"/>2335<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontAscent(System.IntPtr)"/>2336<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontDescent(System.IntPtr)"/>2337</member>2338<member name="M:Tao.Sdl.SdlTtf.TTF_FontFaces(System.IntPtr)">2339<summary>2340Get the number of faces of the font2341</summary>2342<remarks>2343<p>Binds to C-function in SDL_ttf.h2344<code>2345long TTF_FontFaces(TTF_Font *font)2346</code></p>2347</remarks>2348<example>2349<code>23502351</code>2352</example>2353<param name="font"></param>2354<returns>Number of faces in a font</returns>2355<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceIsFixedWidth(System.IntPtr)"/>2356<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceFamilyName(System.IntPtr)"/>2357<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceStyleName(System.IntPtr)"/>2358</member>2359<member name="M:Tao.Sdl.SdlTtf.TTF_FontFaceIsFixedWidth(System.IntPtr)">2360<summary>2361Get whether font is monospaced or not.2362</summary>2363<remarks>2364<p>Binds to C-function in SDL_ttf.h2365<code>2366int TTF_FontFaceIsFixedWidth(TTF_Font *font)2367</code></p>2368</remarks>2369<example>2370<code>23712372</code>2373</example>2374<param name="font"></param>2375<returns>1 if true, 0 if false</returns>2376<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaces(System.IntPtr)"/>2377<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceFamilyName(System.IntPtr)"/>2378<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceStyleName(System.IntPtr)"/>2379</member>2380<member name="M:Tao.Sdl.SdlTtf.TTF_FontFaceFamilyName(System.IntPtr)">2381<summary>2382Get current font face family name string.2383</summary>2384<remarks>2385<p>Binds to C-function in SDL_ttf.h2386<code>2387char * TTF_FontFaceFamilyName(TTF_Font *font)2388</code></p>2389</remarks>2390<example>2391<code>23922393</code>2394</example>2395<param name="font"></param>2396<returns>Name of font family</returns>2397<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaces(System.IntPtr)"/>2398<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceIsFixedWidth(System.IntPtr)"/>2399<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceStyleName(System.IntPtr)"/>2400</member>2401<member name="M:Tao.Sdl.SdlTtf.TTF_FontFaceStyleName(System.IntPtr)">2402<summary>2403Get current font face style name string.2404</summary>2405<remarks>2406<p>Binds to C-function in SDL_ttf.h2407<code>2408char * TTF_FontFaceStyleName(TTF_Font *font)2409</code></p>2410</remarks>2411<example>2412<code>24132414</code>2415</example>2416<param name="font"></param>2417<returns></returns>2418<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaces(System.IntPtr)"/>2419<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceIsFixedWidth(System.IntPtr)"/>2420<seealso cref="M:Tao.Sdl.SdlTtf.TTF_FontFaceFamilyName(System.IntPtr)"/>2421</member>2422<member name="M:Tao.Sdl.SdlTtf.TTF_GlyphMetrics(System.IntPtr,System.Int16,System.Int32@,System.Int32@,System.Int32@,System.Int32@,System.Int32@)">2423<summary>2424Get individual font glyph metrics2425</summary>2426<remarks>2427To understand what these metrics mean, here is a useful link:2428http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html2429<p>Binds to C-function in SDL_ttf.h2430<code>2431int TTF_GlyphMetrics(TTF_Font *font, Uint16 ch, int *minx, int *maxx, int *miny, int *maxy, int *advance)2432</code></p>2433</remarks>2434<example>2435<code>24362437</code>2438</example>2439<param name="font"></param>2440<param name="ch"></param>2441<param name="minx"></param>2442<param name="maxx"></param>2443<param name="miny"></param>2444<param name="maxy"></param>2445<param name="advance"></param>2446<returns></returns>2447</member>2448<member name="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)">2449<summary>2450Get size of LATIN1 text string as would be rendered2451</summary>2452<remarks>2453<p>Binds to C-function in SDL_ttf.h2454<code>2455int TTF_SizeText(TTF_Font *font, const char *text, int *w, int *h)2456</code></p>2457</remarks>2458<example>2459<code>24602461</code>2462</example>2463<param name="font"></param>2464<param name="text"></param>2465<param name="w"></param>2466<param name="h"></param>2467<returns></returns>2468<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeUTF8(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2469<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeUNICODE(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2470</member>2471<member name="M:Tao.Sdl.SdlTtf.TTF_SizeUTF8(System.IntPtr,System.String,System.Int32@,System.Int32@)">2472<summary>2473Get size of UTF8 text string as would be rendered2474</summary>2475<remarks>2476<p>Binds to C-function in SDL_ttf.h2477<code>2478int SDLCALL TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h)2479</code></p>2480</remarks>2481<example>2482<code>24832484</code>2485</example>2486<param name="font"></param>2487<param name="text"></param>2488<param name="w"></param>2489<param name="h"></param>2490<returns></returns>2491<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2492<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeUNICODE(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2493</member>2494<member name="M:Tao.Sdl.SdlTtf.TTF_SizeUNICODE(System.IntPtr,System.String,System.Int32@,System.Int32@)">2495<summary>2496Get size of UNICODE text string as would be rendered2497</summary>2498<remarks>2499<p>Binds to C-function in SDL_ttf.h2500<code>2501int SDLCALL TTF_SizeUNICODE(TTF_Font *font, const Uint16 *text, int *w, int *h)2502</code></p>2503</remarks>2504<example>2505<code>25062507</code>2508</example>2509<param name="font"></param>2510<param name="text"></param>2511<param name="w"></param>2512<param name="h"></param>2513<returns></returns>2514<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2515<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeUTF8(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2516</member>2517<member name="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2518<summary>2519Draw LATIN1 text in solid mode.2520</summary>2521<param name="font">2522Font to render the text with.2523A NULL pointer is not checked.2524</param>2525<param name="text">2526The LATIN1 null terminated string to render.2527</param>2528<param name="fg">2529The color to render the text in. This becomes colormap index 1.2530</param>2531<returns>2532a pointer to a new SDL_Surface.2533NULL is returned on errors.2534</returns>2535<remarks>2536<p>This function renders text using a TTF_Font.2537This mode of rendering is:</p>2538<p>Solid</p>2539<p>Quick and Dirty</p>2540<p>Create an 8-bit palettized surface and render the given2541text at fast quality with the given font and color.2542The 0 pixel value is the colorkey, giving a transparent2543background, and the 1 pixel value is set to the text2544color. The colormap is set to have the desired2545foreground color at index 1, this allows you to2546change the color without having to render the text2547again. Colormap index 0 is of course not drawn,2548since it is the colorkey, and thus transparent,2549though it's actual color is 255 minus each RGB2550component of the foreground. This is the fastest2551rendering speed of all the rendering modes. This results in no box2552around the text, but the text is not as smooth.2553The resulting surface should blit faster than the Blended one.2554Use this mode for FPS and other fast changing updating text displays.</p>2555<p>Binds to C-function in SDL_ttf.h2556<code>2557SDL_Surface * TTF_RenderText_Solid(TTF_Font *font, const char *text, SDL_Color fg)2558</code></p>2559</remarks>2560<example>2561<code>2562// Turn on byte swapping for UNICODE text2563SDL_Surface *text_surface;2564if(!(text_surface=TTF_RenderText_Solid(font,"Hello World!", &color)))2565{2566//handle error here, perhaps print TTF_GetError at least2567}2568</code>2569</example>2570<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2571<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2572<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2573<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Solid(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>2574<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2575<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2576</member>2577<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2578<summary>2579Draw UTF8 text in solid mode.2580</summary>2581<remarks>2582<p>This function renders text using a TTF_Font.2583This mode of rendering is:</p>2584<p>Solid</p>2585<p>Quick and Dirty</p>2586<p>Create an 8-bit palettized surface and render the given2587text at fast quality with the given font and color.2588The 0 pixel value is the colorkey, giving a transparent2589background, and the 1 pixel value is set to the text2590color. The colormap is set to have the desired2591foreground color at index 1, this allows you to2592change the color without having to render the text2593again. Colormap index 0 is of course not drawn,2594since it is the colorkey, and thus transparent,2595though it's actual color is 255 minus each RGB2596component of the foreground. This is the fastest2597rendering speed of all the rendering modes. This results in no box2598around the text, but the text is not as smooth.2599The resulting surface should blit faster than the Blended one.2600Use this mode for FPS and other fast changing updating text displays.</p>2601<p>Binds to C-function in SDL_ttf.h2602<code>2603SDL_Surface * TTF_RenderUTF8_Solid(TTF_Font *font,const char *text, SDL_Color fg)2604</code></p>2605</remarks>2606<param name="font">2607Font to render the text with.2608A NULL pointer is not checked.2609</param>2610<param name="text">2611The UTF8 null terminated string to render.2612</param>2613<param name="fg">2614The color to render the text in. This becomes colormap index 1.2615</param>2616<returns>2617a pointer to a new SDL_Surface.2618NULL is returned on errors.2619</returns>2620<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2621<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2622<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2623<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Solid(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>2624<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2625<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2626</member>2627<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2628<summary>2629Draw UNICODE text in solid mode.2630</summary>2631<remarks>2632<p>This function renders text using a TTF_Font.2633This mode of rendering is:</p>2634<p>Solid</p>2635<p>Quick and Dirty</p>2636<p>Create an 8-bit palettized surface and render the given2637text at fast quality with the given font and color.2638The 0 pixel value is the colorkey, giving a transparent2639background, and the 1 pixel value is set to the text2640color. The colormap is set to have the desired2641foreground color at index 1, this allows you to2642change the color without having to render the text2643again. Colormap index 0 is of course not drawn,2644since it is the colorkey, and thus transparent,2645though it's actual color is 255 minus each RGB2646component of the foreground. This is the fastest2647rendering speed of all the rendering modes. This results in no box2648around the text, but the text is not as smooth.2649The resulting surface should blit faster than the Blended one.2650Use this mode for FPS and other fast changing updating text displays.</p>2651<p>Binds to C-function in SDL_ttf.h2652<code>2653SDL_Surface * SDLCALL TTF_RenderUNICODE_Solid(TTF_Font *font, const Uint16 *text, SDL_Color fg)2654</code></p>2655</remarks>2656<param name="font">2657Font to render the text with.2658A NULL pointer is not checked.2659</param>2660<param name="text">2661The UNICODE null terminated string to render.2662</param>2663<param name="fg">2664The color to render the text in. This becomes colormap index 1.2665</param>2666<returns>2667This function returns the new surface,2668or NULL if there was an error.2669</returns>2670<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2671<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2672<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2673<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Solid(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>2674<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2675<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2676</member>2677<member name="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Solid(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)">2678<summary>2679Draw a UNICODE glyph in solid mode.2680</summary>2681<remarks>2682<p>This function renders text using a TTF_Font.2683This mode of rendering is:</p>2684<p>Solid</p>2685<p>Quick and Dirty</p>2686<p>Create an 8-bit palettized surface and render the given2687text at fast quality with the given font and color.2688The 0 pixel value is the colorkey, giving a transparent2689background, and the 1 pixel value is set to the text2690color. The colormap is set to have the desired2691foreground color at index 1, this allows you to2692change the color without having to render the text2693again. Colormap index 0 is of course not drawn,2694since it is the colorkey, and thus transparent,2695though it's actual color is 255 minus each RGB2696component of the foreground. This is the fastest2697rendering speed of all the rendering modes. This results in no box2698around the text, but the text is not as smooth.2699The glyph is rendered without any padding or2700centering in the X direction,2701and aligned normally in the Y direction.2702The resulting surface should blit faster than the Blended one.2703Use this mode for FPS and other fast changing updating text displays.</p>2704<p>Binds to C-function in SDL_ttf.h2705<code>2706SDL_Surface * SDLCALL TTF_RenderGlyph_Solid(TTF_Font *font, Uint16 ch, SDL_Color fg)2707</code></p>2708</remarks>2709<param name="font">Font to render glyph with.2710A NULL pointer is not checked.</param>2711<param name="ch">2712The glyph to render2713</param>2714<param name="fg">2715The color to render the text in.2716This becomes colormap index 1.2717</param>2718<returns>2719This function returns the new surface,2720or NULL if there was an error.2721</returns>2722<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2723<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2724<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2725<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2726<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2727<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2728</member>2729<member name="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)">2730<summary>2731Draw LATIN1 text in shaded mode.2732</summary>2733<remarks>2734<p>Shaded</p>2735<p>Slow and Nice, but with a Solid Box</p>2736<p>Create an 8-bit palettized surface and render the2737given text at high quality with the given font and colors.2738The 0 pixel value is background, while other pixels have2739varying degrees of the foreground color from the background2740color. This results in a box of the background color around2741the text in the foreground color. The text is antialiased.2742This will render slower than Solid, but in about the same2743time as Blended mode. The resulting surface should blit2744as fast as Solid, once it is made. Use this when you need2745nice text, and can live with a box...</p>2746<p>Binds to C-function in SDL_ttf.h2747<code>2748SDL_Surface * TTF_RenderText_Shaded(TTF_Font *font, const char *text, SDL_Color fg, SDL_Color bg)2749</code></p>2750</remarks>2751<param name="font">Font to render the text with.2752A NULL pointer is not checked.</param>2753<param name="fg">2754The color to render the text in.2755This becomes colormap index 1.2756</param>2757<param name="bg">2758The background color to render in.2759</param>2760<param name="text">2761The LATIN1 null terminated string to render.2762</param>2763<returns>2764This function returns the new surface,2765or NULL if there was an error.2766</returns>2767<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2768<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2769<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2770<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2771<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Shaded(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2772<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2773</member>2774<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)">2775<summary>2776Draw UTF8 text in shaded mode.2777</summary>2778<remarks>2779<p>Shaded</p>2780<p>Slow and Nice, but with a Solid Box</p>2781<p>Create an 8-bit palettized surface and render the2782given text at high quality with the given font and colors.2783The 0 pixel value is background, while other pixels have2784varying degrees of the foreground color from the background2785color. This results in a box of the background color around2786the text in the foreground color. The text is antialiased.2787This will render slower than Solid, but in about the same2788time as Blended mode. The resulting surface should blit2789as fast as Solid, once it is made. Use this when you need2790nice text, and can live with a box...</p>2791<p>Binds to C-function in SDL_ttf.h2792<code>2793SDL_Surface * TTF_RenderUTF8_Shaded(TTF_Font *font, const char *text, SDL_Color fg, SDL_Color bg)2794</code></p>2795</remarks>2796<param name="font">Font to render the text with.2797A NULL pointer is not checked.</param>2798<param name="fg">2799The color to render the text in.2800This becomes colormap index 1.2801</param>2802<param name="bg">2803The background color to render in.2804</param>2805<param name="text">2806The UTF8 null terminated string to render.2807</param>2808<returns>2809This function returns the new surface,2810or NULL if there was an error.2811</returns>2812<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2813<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2814<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2815<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2816<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Shaded(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2817<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2818</member>2819<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)">2820<summary>2821Draw UNICODE text in shaded mode.2822</summary>2823<remarks>2824<p>Shaded</p>2825<p>Slow and Nice, but with a Solid Box</p>2826<p>Create an 8-bit palettized surface and render the2827given text at high quality with the given font and colors.2828The 0 pixel value is background, while other pixels have2829varying degrees of the foreground color from the background2830color. This results in a box of the background color around2831the text in the foreground color. The text is antialiased.2832This will render slower than Solid, but in about the same2833time as Blended mode. The resulting surface should blit2834as fast as Solid, once it is made. Use this when you need2835nice text, and can live with a box...</p>2836<p>Binds to C-function in SDL_ttf.h2837<code>2838SDL_Surface * TTF_RenderUNICODE_Shaded(TTF_Font *font, const Uint16 *text, SDL_Color fg, SDL_Color bg)2839</code></p>2840</remarks>2841<param name="font">Font to render the text with.2842A NULL pointer is not checked.</param>2843<param name="fg">2844The color to render the text in.2845This becomes colormap index 1.2846</param>2847<param name="bg">2848The background color to render in.2849</param>2850<param name="text">2851The UNICODE string to render.2852</param>2853<returns>2854This function returns the new surface,2855or NULL if there was an error.2856</returns>2857<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2858<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2859<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2860<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2861<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Shaded(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2862<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2863</member>2864<member name="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Shaded(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)">2865<summary>2866Draw a UNICODE glyph in shaded mode.2867</summary>2868<remarks>2869<p>Shaded</p>2870<p>Slow and Nice, but with a Solid Box</p>2871<p>Create an 8-bit palettized surface and render the2872given text at high quality with the given font and colors.2873The 0 pixel value is background, while other pixels have2874varying degrees of the foreground color from the background2875color. This results in a box of the background color around2876the text in the foreground color. The text is antialiased.2877This will render slower than Solid, but in about the same2878time as Blended mode. The resulting surface should blit2879as fast as Solid, once it is made. Use this when you need2880nice text, and can live with a box...</p>2881<p>Binds to C-function in SDL_ttf.h2882<code>2883SDL_Surface * TTF_RenderGlyph_Shaded(TTF_Font *font, Uint16 ch, SDL_Color fg, SDL_Color bg)2884</code></p>2885</remarks>2886<param name="font">Font to render the text with.2887A NULL pointer is not checked.</param>2888<param name="fg">2889The color to render the text in.2890This becomes colormap index 1.2891</param>2892<param name="bg">2893The background color to render in.2894</param>2895<param name="ch">2896The glyph to render.2897</param>2898<returns>2899This function returns the new surface,2900or NULL if there was an error.2901</returns>2902<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2903<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2904<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2905<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2906<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2907<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2908</member>2909<member name="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2910<summary>2911Draw LATIN1 text in blended mode.2912</summary>2913<param name="font">2914Font to render the text with.2915A NULL pointer is not checked.2916</param>2917<param name="text">2918The LATIN1 null terminated string to render.2919</param>2920<param name="fg">2921The color to render the text in. This becomes colormap index 1.2922</param>2923<returns>2924a pointer to a new SDL_Surface.2925NULL is returned on errors.2926</returns>2927<remarks>2928<p>This function renders text using a TTF_Font.2929This mode of rendering is:</p>2930<p>Blended</p>2931<p>Slow Slow Slow, but Ultra Nice over another image</p>2932<p>Create a 32-bit ARGB surface and render the given text at high2933quality, using alpha blending to dither the font with the given2934color. This results in a surface with alpha transparency, so you2935don't have a solid colored box around the text. The text is2936antialiased. This will render slower than Solid, but in about2937the same time as Shaded mode. The resulting surface will blit2938slower than if you had used Solid or Shaded. Use this when you2939want high quality, and the text isn't changing too fast.</p>2940<p>Binds to C-function in SDL_ttf.h2941<code>2942SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font, const char *text, SDL_Color fg)2943</code></p>2944</remarks>2945<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2946<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2947<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2948<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Blended(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>2949<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2950<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2951</member>2952<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2953<summary>2954Draw UTF8 text in blended mode.2955</summary>2956<param name="font">2957Font to render the text with.2958A NULL pointer is not checked.2959</param>2960<param name="text">2961The UTF8 null terminated string to render.2962</param>2963<param name="fg">2964The color to render the text in. This becomes colormap index 1.2965</param>2966<returns>2967a pointer to a new SDL_Surface.2968NULL is returned on errors.2969</returns>2970<remarks>2971<p>This function renders text using a TTF_Font.2972This mode of rendering is:</p>2973<p>Blended</p>2974<p>Slow Slow Slow, but Ultra Nice over another image</p>2975<p>Create a 32-bit ARGB surface and render the given text at high2976quality, using alpha blending to dither the font with the given2977color. This results in a surface with alpha transparency, so you2978don't have a solid colored box around the text. The text is2979antialiased. This will render slower than Solid, but in about2980the same time as Shaded mode. The resulting surface will blit2981slower than if you had used Solid or Shaded. Use this when you2982want high quality, and the text isn't changing too fast.</p>2983<p>Binds to C-function in SDL_ttf.h2984<code>2985SDL_Surface * SDLCALL TTF_RenderUTF8_Blended(TTF_Font *font, const char *text, SDL_Color fg)2986</code></p>2987</remarks>2988<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>2989<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2990<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2991<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Blended(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>2992<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>2993<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>2994</member>2995<member name="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)">2996<summary>2997Draw UNICODE text in blended mode.2998</summary>2999<param name="font">3000Font to render the text with.3001A NULL pointer is not checked.3002</param>3003<param name="text">3004The UNICODE string to render.3005</param>3006<param name="fg">3007The color to render the text in. This becomes colormap index 1.3008</param>3009<returns>3010a pointer to a new SDL_Surface.3011NULL is returned on errors.3012</returns>3013<remarks>3014<p>This function renders text using a TTF_Font.3015This mode of rendering is:</p>3016<p>Blended</p>3017<p>Slow Slow Slow, but Ultra Nice over another image</p>3018<p>Create a 32-bit ARGB surface and render the given text at high3019quality, using alpha blending to dither the font with the given3020color. This results in a surface with alpha transparency, so you3021don't have a solid colored box around the text. The text is3022antialiased. This will render slower than Solid, but in about3023the same time as Shaded mode. The resulting surface will blit3024slower than if you had used Solid or Shaded. Use this when you3025want high quality, and the text isn't changing too fast.</p>3026<p>Binds to C-function in SDL_ttf.h3027<code>3028SDL_Surface * TTF_RenderUNICODE_Blended(TTF_Font *font, const Uint16 *text, SDL_Color fg)3029</code></p>3030</remarks>3031<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>3032<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3033<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3034<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Blended(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)"/>3035<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>3036<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3037</member>3038<member name="M:Tao.Sdl.SdlTtf.TTF_RenderGlyph_Blended(System.IntPtr,System.Int16,Tao.Sdl.Sdl.SDL_Color)">3039<summary>3040Draw a UNICODE glyph in blended mode.3041</summary>3042<param name="font">3043Font to render the text with.3044A NULL pointer is not checked.3045</param>3046<param name="ch">3047The glyph to render.3048</param>3049<param name="fg">3050The color to render the text in. This becomes colormap index 1.3051</param>3052<returns>3053a pointer to a new SDL_Surface.3054NULL is returned on errors.3055</returns>3056<remarks>3057<p>This function renders text using a TTF_Font.3058This mode of rendering is:</p>3059<p>Blended</p>3060<p>Slow Slow Slow, but Ultra Nice over another image</p>3061<p>Create a 32-bit ARGB surface and render the given text at high3062quality, using alpha blending to dither the font with the given3063color. This results in a surface with alpha transparency, so you3064don't have a solid colored box around the text. The text is3065antialiased. This will render slower than Solid, but in about3066the same time as Shaded mode. The resulting surface will blit3067slower than if you had used Solid or Shaded. Use this when you3068want high quality, and the text isn't changing too fast.</p>3069<p>Binds to C-function in SDL_ttf.h3070<code>3071SDL_Surface * TTF_RenderUNICODE_Blended(TTF_Font *font, const Uint16 *text, SDL_Color fg)3072</code></p>3073</remarks>3074<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SizeText(System.IntPtr,System.String,System.Int32@,System.Int32@)"/>3075<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3076<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUTF8_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3077<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderUNICODE_Blended(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3078<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Shaded(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color,Tao.Sdl.Sdl.SDL_Color)"/>3079<seealso cref="M:Tao.Sdl.SdlTtf.TTF_RenderText_Solid(System.IntPtr,System.String,Tao.Sdl.Sdl.SDL_Color)"/>3080</member>3081<member name="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)">3082<summary>3083Close an opened font file3084</summary>3085<remarks>3086Free the memory used by font, and free font itself as well.3087Do not use font after this without loading a new font to it.3088<p>Binds to C-function in SDL_ttf.h3089<code>3090void TTF_CloseFont(TTF_Font *font)3091</code></p>3092</remarks>3093<example>3094<code>3095// free the font3096// TTF_Font *font;3097TTF_CloseFont(font);3098font=NULL; // to be safe...3099</code>3100</example>3101<param name="font">3102Pointer to the TTF_Font to free.3103</param>3104<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFont(System.String,System.Int32)"/>3105<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndex(System.String,System.Int32,System.Int64)"/>3106<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontRW(System.IntPtr,System.Int32,System.Int32)"/>3107<seealso cref="M:Tao.Sdl.SdlTtf.TTF_CloseFont(System.IntPtr)"/>3108<seealso cref="M:Tao.Sdl.SdlTtf.TTF_OpenFontIndexRW(System.IntPtr,System.Int32,System.Int32,System.Int64)"/>3109</member>3110<member name="M:Tao.Sdl.SdlTtf.TTF_Quit">3111<summary>3112De-initialize the TTF engine3113</summary>3114<remarks>3115Shutdown and cleanup the truetype font API.3116<p>After calling this the SDL_ttf functions should not be used,3117excepting TTF_WasInit. You may, of course,3118use TTF_Init to use the functionality again.</p>3119<p>Binds to C-function in SDL_ttf.h3120<code>3121void TTF_Quit()3122</code></p>3123</remarks>3124<example>3125<code>3126TTF_Quit();3127// you could SDL_Quit(); here...or not.3128</code>3129</example>3130<seealso cref="M:Tao.Sdl.SdlTtf.TTF_Init"/>3131<seealso cref="M:Tao.Sdl.SdlTtf.TTF_WasInit"/>3132</member>3133<member name="M:Tao.Sdl.SdlTtf.TTF_WasInit">3134<summary>3135Check if the TTF engine is initialized.3136</summary>3137<remarks>3138Query the initilization status of the truetype font API.3139<p>You may, of course, use this before TTF_Init to avoid3140initilizing twice in a row. Or use this to determine3141if you need to call TTF_Quit.</p>3142<p>Binds to C-function in SDL_ttf.h3143<code>3144int TTF_WasInit()3145</code></p>3146</remarks>3147<example>3148<code>3149if(!TTF_WasInit() && TTF_Init()==-1) {3150printf("TTF_Init: %s\n", TTF_GetError());3151exit(1);3152}3153</code>3154</example>3155<returns></returns>3156<seealso cref="M:Tao.Sdl.SdlTtf.TTF_Init"/>3157<seealso cref="M:Tao.Sdl.SdlTtf.TTF_Quit"/>3158</member>3159<member name="M:Tao.Sdl.SdlTtf.TTF_SetError(System.String)">3160<summary>3161Set the current error string3162</summary>3163<remarks>3164This is the same as SDL_SetError, which sets the error string3165which may be fetched with TTF_GetError (or SDL_GetError).3166This functions acts like printf, except that it is limited to3167SDL_ERRBUFIZE(1024) chars in length. It only accepts the3168following format types: %s, %d, %f, %p. No variations are3169supported, like %.2f would not work. For any more specifics3170read the SDL docs.3171<p>Binds to C-function in SDL_image.h3172<code>3173void TTF_SetError(const char *fmt, ...)3174</code>3175</p>3176</remarks>3177<example>3178<code>3179int myfunc(int i) {3180TTF_SetError("myfunc is not implemented! %d was passed in.",i);3181return(-1);3182}3183</code></example>3184<param name="message"></param>3185<seealso cref="M:Tao.Sdl.SdlTtf.TTF_GetError"/>3186</member>3187<member name="M:Tao.Sdl.SdlTtf.TTF_GetError">3188<summary>3189Get the current error string3190</summary>3191<remarks>3192This is the same as SDL_GetError, which returns the last error set3193as a string which you may use to tell the user what happened when3194an error status has been returned from an SDL_ttf function call.3195<p>Binds to C-function in SDL_ttf.h3196<code>3197char *TTF_GetError()3198</code>3199</p>3200</remarks>3201<returns>3202a char pointer (string) containing a humam3203readable version or the reason for the last error that3204occured.3205</returns>3206<example>3207<code>3208printf("Oh My Goodness, an error : %s", TTF_GetError());3209</code>3210</example>3211<seealso cref="M:Tao.Sdl.SdlTtf.TTF_SetError(System.String)"/>3212</member>3213<member name="T:Tao.Sdl.SdlTtf.TTF_Font">3214<summary>3215The opaque holder of a loaded font3216</summary>3217<remarks>3218The opaque holder of a loaded font. You should always be using3219a pointer of this type, as in TTF_Font*, and not just plain3220TTF_Font. This stores the font data in a struct that is exposed3221only by using the API functions to get information.3222You should not try to access the struct data directly,3223since the struct may change in different versions of the API,3224and thus your program would be unreliable.3225<p>Struct in SDL_ttf.h3226<code>struct _TTF_Font TTF_Font;3227</code></p>3228</remarks>3229</member>3230<member name="T:Tao.Sdl.SdlNet">3231<summary>3232SDL_net is a portable network library for use with SDL.3233</summary>3234</member>3235<member name="F:Tao.Sdl.SdlNet.SDL_NET_NATIVE_LIBRARY">3236<summary>3237Specifies SdlNet's native library archive.3238</summary>3239<remarks>3240Specifies SDL_net.dll everywhere; will be mapped via3241.config for mono.3242</remarks>3243</member>3244<member name="F:Tao.Sdl.SdlNet.CALLING_CONVENTION">3245<summary>3246Specifies the calling convention.3247</summary>3248<remarks>3249Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>3250for Windows and Linux.3251</remarks>3252</member>3253<member name="F:Tao.Sdl.SdlNet.SDL_NET_MAJOR_VERSION">3254<summary>3255Major Version3256</summary>3257</member>3258<member name="F:Tao.Sdl.SdlNet.SDL_NET_MINOR_VERSION">3259<summary>3260Minor Version3261</summary>3262</member>3263<member name="F:Tao.Sdl.SdlNet.SDL_NET_PATCHLEVEL">3264<summary>3265Patch Version3266</summary>3267</member>3268<member name="F:Tao.Sdl.SdlNet.INADDR_ANY">3269<summary>3270Used for listening on all network interfaces.3271</summary>3272</member>3273<member name="F:Tao.Sdl.SdlNet.INADDR_NONE">3274<summary>3275Which has limited applications.3276</summary>3277</member>3278<member name="F:Tao.Sdl.SdlNet.INADDR_BROADCAST">3279<summary>3280Used as destination when sending a message to all clients on3281a subnet that allows broadcasts.3282</summary>3283</member>3284<member name="F:Tao.Sdl.SdlNet.SDLNET_MAX_UDPCHANNELS">3285<summary>3286The maximum number of channels on a UDP socket.3287</summary>3288</member>3289<member name="F:Tao.Sdl.SdlNet.SDLNET_MAX_UDPADDRESSES">3290<summary>3291The maximum number of addresses bound to a single UDP socket3292channel.3293</summary>3294</member>3295<member name="M:Tao.Sdl.SdlNet.SDL_NET_VERSION">3296<summary>3297This method can be used to fill a version structure with the compile-time3298version of the SDL_net library.3299</summary>3300<returns>3301This function returns a <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct containing the3302compiled version number3303</returns>3304<remarks>3305<p>3306Binds to C-function call in SDL_net.h:3307<code>#define SDL_NET_VERSION(X)3308{3309(X)->major = SDL_NET_MAJOR_VERSION;3310(X)->minor = SDL_NET_MINOR_VERSION;3311(X)->patch = SDL_NET_PATCHLEVEL;3312}</code>3313</p>3314</remarks>3315</member>3316<member name="M:Tao.Sdl.SdlNet.SDLNet_Linked_Version">3317<summary>3318Using this you can compare the runtime version to the3319version that you compiled with.3320</summary>3321<returns>3322This function gets the version of the dynamically3323linked SDL_net library in an <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct.3324</returns>3325<remarks>3326<p>3327Binds to C-function call in SDL_net.h:3328<code>const SDL_version * SDLNet_Linked_Version(void)</code>3329</p>3330</remarks>3331</member>3332<member name="M:Tao.Sdl.SdlNet.SDLNet_Init">3333<summary>3334Initialize the network API.3335</summary>3336<remarks>3337This must be called before using other functions in this library.3338SDL must be initialized before this call because this3339library uses utility functions from the SDL library.3340<p>Binds to C-function call in SDL_net.h:3341<code>extern DECLSPEC int SDLCALL SDLNet_Init(void);</code>3342</p>3343</remarks>3344<returns>0 on success, -1 on errors</returns>3345<example>3346<code>3347if(SDL_Init(0)==-1) {3348printf("SDL_Init: %s\n", SDL_GetError());3349exit(1);3350}3351if(SDLNet_Init()==-1) {3352printf("SDLNet_Init: %s\n", SDLNet_GetError());3353exit(2);3354}3355</code>3356</example>3357<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Quit"/>3358</member>3359<member name="M:Tao.Sdl.SdlNet.SDLNet_Quit">3360<summary>3361Shutdown and cleanup the network API.3362</summary>3363<remarks>3364After calling this all sockets are closed, and the SDL_net3365functions should not be used. You may, of course, use SDLNet_Init3366to use the functionality again.3367<p>Binds to C-function call in SDL_net.h:3368<code>extern DECLSPEC void SDLCALL SDLNet_Quit(void);</code>3369</p>3370</remarks>3371<example>3372<code>3373SDLNet_Quit();3374// you could SDL_Quit(); here...or not.3375</code>3376</example>3377<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Init"/>3378</member>3379<member name="M:Tao.Sdl.SdlNet.SDLNet_GetError">3380<summary>3381Get the current error string3382</summary>3383<remarks>3384This is the same as SDL_GetError, which returns the3385last error set as a string which you may use to tell3386the user what happened when an error status has been returned3387from an SDLNet_function.3388<p>Binds to C-function call in SDL_error.h:3389<code>#define SDLNet_GetError SDL_GetError</code>3390</p>3391</remarks>3392<returns>3393A string containing a human readable version3394or the reason for the last error that occured.3395</returns>3396<example>3397<code>3398printf("Oh My Goodness, an error : %s", SDLNet_GetError());3399</code>3400</example>3401</member>3402<member name="M:Tao.Sdl.SdlNet.SDLNet_SetError(System.String)">3403<summary>3404This is the same as SDL_SetError, which sets an SDL error message3405</summary>3406<remarks>3407<p>Binds to C-function call in SDL_error.h:3408<code>#define SDLNet_SetError SDL_SetError</code>3409</p>3410</remarks>3411<param name="message">3412The error message to set.3413</param>3414</member>3415<member name="M:Tao.Sdl.SdlNet.SDLNet_Write16(System.Int16,System.IntPtr)">3416<summary>3417Put the 16bit (a short on 32bit systems) value3418into the data buffer area in network byte order.3419</summary>3420<remarks>3421This helps avoid byte order differences3422between two systems that are talking over the network.3423The value can be a signed number, the unsigned parameter3424type doesn't affect the data. The area pointer need not3425be at the beginning of a buffer, but must have at3426least 2 bytes of space left,3427including the byte currently pointed at.3428<p>Binds to C-function call in SDL_error.h:3429<code>extern DECLSPEC void SDLCALL SDLNet_Write16(Uint16 value, void *area)</code>3430</p>3431</remarks>3432<example>3433<code>3434// put my number into a data buffer to prepare for3435// sending to a remote host3436char data[1024];3437Sint16 number=12345;3438SDLNet_Write16((Uint16)number,data);3439</code>3440</example>3441<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Write32(System.Int32,System.IntPtr)"/>3442<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Read16(System.IntPtr)"/>3443<param name="value">3444The 16bit number to put into the3445area buffer.3446</param>3447<param name="area">3448The pointer into a data buffer, at which to put the number.3449</param>3450</member>3451<member name="M:Tao.Sdl.SdlNet.SDLNet_Write32(System.Int32,System.IntPtr)">3452<summary>3453Put the 32bit (a long on 32bit systems) value into3454the data buffer area in network byte order.3455</summary>3456<remarks>3457This helps avoid byte order differences between two3458systems that are talking over the network.3459The value can be a signed number, the unsigned3460parameter type doesn't affect the data.3461The area pointer need not be at the beginning of a buffer,3462but must have at least 4 bytes of space left,3463including the byte currently pointed at.3464<p>Binds to C-function call in SDL_error.h:3465<code>extern DECLSPEC void SDLCALL SDLNet_Write32(Uint32 value, void *area)</code>3466</p>3467</remarks>3468<example>3469<code>3470// put my number into a data buffer to prepare3471// for sending to a remote host3472char data[1024];3473Uint32 number=0xDEADBEEF;3474SDLNet_Write32(number,data);3475</code>3476</example>3477<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Write16(System.Int16,System.IntPtr)"/>3478<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Read32(System.IntPtr)"/>3479<param name="value">3480The 32bit number to put into the area buffer.3481</param>3482<param name="area">3483The pointer into a data buffer, at which to put the number.3484</param>3485</member>3486<member name="M:Tao.Sdl.SdlNet.SDLNet_Read16(System.IntPtr)">3487<summary>3488Get a 16bit (a short on 32bit systems) value from3489the data buffer area which is in network byte order.3490</summary>3491<remarks>3492This helps avoid byte order differences between3493two systems that are talking over the network.3494The returned value can be a signed number,3495the unsigned parameter type doesn't affect the data.3496The area pointer need not be at the beginning of a buffer,3497but must have at least 2 bytes of space left,3498including the byte currently pointed at.3499<p>Binds to C-function call in SDL_error.h:3500<code>extern DECLSPEC Uint16 SDLCALL SDLNet_Read16(void *area)</code>3501</p>3502</remarks>3503<example>3504<code>3505// get a number from a data buffer to use on this host3506//char *ptr; //this points into a previously received data buffer3507Sint16 number;3508number=(Sint16) SDLNet_Read16(ptr);3509// number is now in your hosts byte order, ready to use.3510</code>3511</example>3512<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Write16(System.Int16,System.IntPtr)"/>3513<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Read32(System.IntPtr)"/>3514<param name="area">The pointer into a data buffer, at which to get the number from.</param>3515</member>3516<member name="M:Tao.Sdl.SdlNet.SDLNet_Read32(System.IntPtr)">3517<summary>3518Get a 32bit (a long on 32bit systems) value from the data buffer area which is in network byte order.3519</summary>3520<remarks>3521This helps avoid byte order differences between two3522systems that are talking over the network. The3523returned value can be a signed number, the unsigned3524parameter type doesn't affect the data. The area3525pointer need not be at the beginning of a buffer,3526but must have at least 4 bytes of space left,3527including the byte currently pointed at.3528<p>Binds to C-function call in SDL_error.h:3529<code>extern DECLSPEC Uint32 SDLCALL SDLNet_Read32(void *area)</code>3530</p>3531</remarks>3532<example>3533<code>3534// get a number from a data buffer to use on this host3535//char *ptr; //this points into a previously received data buffer3536Uint32 number;3537number=SDLNet_Read32(ptr);3538// number is now in your hosts byte order, ready to use.3539</code>3540</example>3541<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Write32(System.Int32,System.IntPtr)"/>3542<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_Read16(System.IntPtr)"/>3543<param name="area">The pointer into a data buffer, at which to get the number from.</param>3544</member>3545<member name="M:Tao.Sdl.SdlNet.SDLNet_ResolveHost(Tao.Sdl.SdlNet.IPaddress@,System.String,System.Int16)">3546<summary>3547Resolve the string host, and fill in the IPaddress pointed to by address with the resolved IP and the port number passed in through port.3548</summary>3549<remarks>3550This is the best way to fill in the IPaddress struct for later use. This function does not actually open any sockets, it is used to prepare the arguments for the socket opening functions.3551WARNING: this function will put the host and port into Network Byte Order into the address fields, so make sure you pass in the data in your hosts byte order. (normally not an issue)3552<p>Binds to C-function call in SDL_net.h:3553<code>3554extern DECLSPEC int SDLCALL SDLNet_ResolveHost(IPaddress *address, const char *host, Uint16 port)3555</code>3556</p>3557</remarks>3558<returns>0 on success. -1 on errors, plus address.host will be INADDR_NONE. An error would likely be that the address could not be resolved. If 'host' is NULL, the resolved host will be set to INADDR_ANY.</returns>3559<example>For a server listening on all interfaces, on port 1234:3560<code>3561// create a server type IPaddress on port 12343562IPaddress ipaddress;3563SDLNet_ResolveHost(ipaddress, NULL, 1234);3564</code>3565For a client connecting to "host.domain.ext", at port 1234:3566<code>3567// create an IPaddress for host name "host.domain.ext" on port 12343568// this is used by a client3569IPaddress ipaddress;3570SDLNet_ResolveHost(ipaddress, "host.domain.ext", 1234);3571</code>3572</example>3573<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResolveIP(Tao.Sdl.SdlNet.IPaddress@)"/>3574<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>3575<param name="address">This points to the IPaddress that will be filled in. It doesn't need to be set before calling this, but it must be allocated in memory.</param>3576<param name="host">For connecting to a server, this is the hostname or IP in a string. For becoming a server, this is NULL. If you do use NULL, all network interfaces would be listened to for incoming connections, using the INADDR_ANY address.</param>3577<param name="port">For connecting to a server, this is the the servers listening port number. For becoming a server, this is the port to listen on. If you are just doing Domain Name Resolution functions, this can be 0.</param>3578</member>3579<member name="M:Tao.Sdl.SdlNet.SDLNet_ResolveIP(Tao.Sdl.SdlNet.IPaddress@)">3580<summary>3581Resolve the IPv4 numeric address in address->host, and return the hostname as a string.3582</summary>3583<remarks>3584This is the best way to fill in the IPaddress struct for later use. This function does not actually open any sockets, it is used to prepare the arguments for the socket opening functions.3585WARNING: this function will put the host and port into Network Byte Order into the address fields, so make sure you pass in the data in your hosts byte order. (normally not an issue)3586<p>Binds to C-function call in SDL_net.h:3587<code>3588extern DECLSPEC const char * SDLCALL SDLNet_ResolveIP(IPaddress *ip);3589</code>3590</p>3591</remarks>3592<returns>a valid char pointer (string) on success. the returned hostname will have host and domain, as in "host.domain.ext". NULL is returned on errors, such as when it's not able to resolve the host name. The returned pointer is not to be freed. Each time you call this function the previous pointer's data will change to the new value, so you may have to copy it into a local buffer to keep it around longer.</returns>3593<example>3594<code>3595// resolve the host name of the address in ipaddress3596//IPaddress ipaddress;3597char *host;3598if(!(host=SDLNet_ResolveIP(IPaddress))) {3599printf("SDLNet_ResolveIP: %s\n", SDLNet_GetError());3600exit(1);3601}3602</code>3603</example>3604<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResolveHost(Tao.Sdl.SdlNet.IPaddress@,System.String,System.Int16)"/>3605<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>3606<param name="address">This points to the IPaddress that will be resolved to a host name. The address->port is ignored.</param>3607</member>3608<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)">3609<summary>3610Open a TCP client or server socket3611</summary>3612<remarks>3613Connect to the host and port contained in ip using a TCP connection.3614If the host is INADDR_ANY, then only the port number is used, and a socket is created that can be used to later accept incoming TCP connections.3615<p>Binds to C-function call in SDL_net.h:3616<code>3617extern DECLSPEC TCPsocket SDLCALL SDLNet_TCP_Open(IPaddress *ip)3618</code>3619</p>3620</remarks>3621<returns>a valid TCPsocket on success, which indicates a successful connection has been established, or a socket has been created that is valid to accept incoming TCP connections. NULL is returned on errors, such as when it's not able to create a socket, or it cannot connect to host and/or port contained in ip.</returns>3622<example>3623<code>3624// connect to localhost at port 9999 using TCP (client)3625IPaddress ip;3626TCPsocket tcpsock;36273628if(SDLNet_ResolveHost(&ip,"localhost",9999)==-1) {3629printf("SDLNet_ResolveHost: %s\n", SDLNet_GetError());3630exit(1);3631}36323633tcpsock=SDLNet_TCP_Open(&ip);3634if(!tcpsock) {3635printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError());3636exit(2);3637}3638</code>36393640<code>3641// create a listening TCP socket on port 9999 (server)3642IPaddress ip;3643TCPsocket tcpsock;36443645if(SDLNet_ResolveHost(&ip,NULL,9999)==-1) {3646printf("SDLNet_ResolveHost: %s\n", SDLNet_GetError());3647exit(1);3648}36493650tcpsock=SDLNet_TCP_Open(&ip);3651if(!tcpsock) {3652printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError());3653exit(2);3654}3655</code>3656</example>3657<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Accept(Tao.Sdl.SdlNet.TCPsocket)"/>3658<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)"/>3659<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>3660<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>36613662<param name="ip">This points to the IPaddress that contains the resolved IP address and port number to use.</param>3663</member>3664<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_Accept(Tao.Sdl.SdlNet.TCPsocket)">3665<summary>3666Accept a connection on a server socket3667</summary>3668<remarks>3669Accept an incoming connection on the server TCPsocket.3670Do not use this function on a connected socket.3671Server sockets are never connected to a remote host.3672What you get back is a new TCPsocket that is connected to the remote host.3673This is a non-blocking call, so if no connections are there to be accepted,3674you will get a NULL3675TCPsocket and the program will continue going.36763677Accept an incoming connection on the given server socket.3678The newly created socket is returned, or NULL if there was an error.3679<p>Binds to C-function call in SDL_net.h:3680<code>3681extern DECLSPEC TCPsocket SDLCALL SDLNet_TCP_Accept(TCPsocket server)3682</code>3683</p>3684</remarks>3685<returns>a valid TCPsocket on success, which indicates a successful connection has been established. NULL is returned on errors, such as when it's not able to create a socket, or it cannot finish connecting to the originating host and port. There also may not be a connection attempt in progress, so of course you cannot accept nothing, and you get a NULL in this case as well.</returns>3686<example>3687<code>3688// accept a connection coming in on server_tcpsock3689TCPsocket new_tcpsock;36903691new_tcpsock=SDLNet_TCP_Accept(server_tcpsock);3692if(!new_tcpsock) {3693printf("SDLNet_TCP_Accept: %s\n", SDLNet_GetError());3694}3695else {3696// communicate over new_tcpsock3697}3698</code>3699</example>3700<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)"/>3701<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)"/>3702<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_GetPeerAddress(Tao.Sdl.SdlNet.TCPsocket)"/>3703<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>3704<param name="server">3705This is the server TCPsocket which was previously created by3706SDLNet_TCP_Open.3707</param>3708</member>3709<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_GetPeerAddress(Tao.Sdl.SdlNet.TCPsocket)">3710<summary>3711Get the remote host address and port number3712</summary>3713<remarks>3714Get the Peer's (the other side of the connection,3715the remote side, not the local side) IP address and port number.3716<p>Binds to C-function call in SDL_net.h:3717<code>3718extern DECLSPEC IPaddress * SDLCALL SDLNet_TCP_GetPeerAddress(TCPsocket sock)3719</code>3720</p>3721</remarks>3722<returns>3723an IPaddress. NULL is returned on errors, or when sock is a server socket.3724</returns>3725<example>3726<code>3727// get the remote IP and port3728//TCPsocket new_tcpsock;3729IPaddress *remote_ip;37303731remote_ip=SDLNet_TCP_GetPeerAddress(new_tcpsock);3732if(!remote_ip) {3733printf("SDLNet_TCP_GetPeerAddress: %s\n", SDLNet_GetError());3734printf("This may be a server socket.\n");3735}3736else {3737// print the info in IPaddress or something else...3738}3739</code>3740</example>3741<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)"/>3742<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Accept(Tao.Sdl.SdlNet.TCPsocket)"/>3743<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>3744<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>3745<param name="sock">3746This is a valid TCPsocket.3747</param>3748</member>3749<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_Send(Tao.Sdl.SdlNet.TCPsocket,System.IntPtr,System.Int32)">3750<summary>3751Send data over a connected socket3752</summary>3753<remarks>3754Send data of length len over the socket sock.3755This routine is not used for server sockets.3756<p>Binds to C-function call in SDL_net.h:3757<code>3758extern DECLSPEC int SDLCALL SDLNet_TCP_Send(TCPsocket sock, const void *data, int len)3759</code>3760</p>3761</remarks>3762<returns>3763the number of bytes sent. If the number returned is less than len,3764then an error occured, such as the client disconnecting.3765</returns>3766<example>3767<code>3768// send a hello over sock3769//TCPsocket sock;3770int len,result;3771char *msg="Hello!";37723773len=strlen(msg)+1; // add one for the terminating NULL3774result=SDLNet_TCP_Send(sock,msg,len);3775if(result<len) {3776printf("SDLNet_TCP_Send: %s\n", SDLNet_GetError());3777// It may be good to disconnect sock because it is likely invalid now.3778}3779</code>3780</example>3781<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)"/>3782<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)"/>3783<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Accept(Tao.Sdl.SdlNet.TCPsocket)"/>3784<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Recv(Tao.Sdl.SdlNet.TCPsocket,System.IntPtr,System.Int32)"/>3785<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_GetPeerAddress(Tao.Sdl.SdlNet.TCPsocket)"/>3786<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>3787<param name="sock">3788This is a valid, connected, TCPsocket.3789</param>3790<param name="data">3791This is a pointer to the data to send over sock.3792</param>3793<param name="len">3794This is the length (in bytes) of the data.3795</param>3796</member>3797<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_Recv(Tao.Sdl.SdlNet.TCPsocket,System.IntPtr,System.Int32)">3798<summary>3799Receive data from a connected socket3800</summary>3801<remarks>Receive data of exactly length maxlen bytes from the socket sock, into the memory pointed to by data. This routine is not used for server sockets. Unless there is an error, or the connection is closed, the buffer will read maxlen bytes. If you read more than is sent from the other end, then it will wait until the full requested length is sent, or until the connection is closed from the other end. You may have to read 1 byte at a time for some applications, for instance, text applications where blocks of text are sent, but you want to read line by line. In that case you may want to find the newline characters yourself to break the lines up, instead of reading some inordinate amount of text which may contain many lines, or not even a full line of text.3802<p>Binds to C-function call in SDL_net.h:3803<code>3804extern DECLSPEC int SDLCALL SDLNet_TCP_Recv(TCPsocket sock, void *data, int maxlen)3805</code>3806</p>3807</remarks>3808<returns>3809the number of bytes received. If the number returned is less than or equal to zero, then an error occured, or the remote host has closed the connection.3810</returns>3811<example>3812<code>3813// receive some text from sock3814//TCPsocket sock;3815#define MAXLEN 10243816int result;3817char msg[MAXLEN];38183819result=SDLNet_TCP_Recv(sock,msg,MAXLEN);3820if(result<=0) {3821// An error may have occured, but sometimes you can just ignore it3822// It may be good to disconnect sock because it is likely invalid now.3823}3824printf("Received: \"%s\"\n",msg);3825</code>3826</example>3827<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)"/>3828<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)"/>3829<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Accept(Tao.Sdl.SdlNet.TCPsocket)"/>3830<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Send(Tao.Sdl.SdlNet.TCPsocket,System.IntPtr,System.Int32)"/>3831<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_GetPeerAddress(Tao.Sdl.SdlNet.TCPsocket)"/>3832<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>3833<param name="sock">3834This is a valid, connected, TCPsocket.3835</param>3836<param name="data">3837This is a pointer to the buffer that receives the data from sock.3838</param>3839<param name="maxlen">3840This is the maximum length (in bytes) that will be read into data.3841</param>3842</member>3843<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)">3844<summary>3845Close a TCP socket3846</summary>3847<remarks>3848This shutsdown, disconnects, and closes the TCPsocket sock. After this, you can be assured that this socket is not in use anymore. You can reuse the sock variable after this to open a new connection with SDLNet_TCP_Open. Do not try to use any other functions on a closed socket, as it is now invalid.38493850<p>Binds to C-function call in SDL_net.h:3851<code>3852extern DECLSPEC void SDLCALL SDLNet_TCP_Close(TCPsocket sock)3853</code>3854</p>3855</remarks>3856<returns>3857nothing, this always succeeds for all we need to know.3858</returns>3859<example>3860<code>3861// close the connection on sock3862//TCPsocket sock;38633864SDLNet_TCP_Close(sock);3865</code>3866</example>3867<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Close(System.IntPtr)"/>3868<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>3869<param name="sock">3870A valid TCPsocket. This can be a server or client type socket.3871</param>3872</member>3873<member name="M:Tao.Sdl.SdlNet.SDLNet_AllocPacket(System.Int32)">3874<summary>3875Allocate a new UDP packet with a data buffer3876</summary>3877<remarks>3878Create (via malloc) a new UDPpacket with a data buffer of size bytes. The new packet should be freed using SDLNet_FreePacket when you are done using it.3879<p>Binds to C-function call in SDL_net.h:3880<code>3881extern DECLSPEC UDPpacket * SDLCALL SDLNet_AllocPacket(int size)3882</code>3883</p>3884</remarks>3885<returns>3886a pointer to a new empty UDPpacket. NULL is returned on errors, such as out-of-memory.3887</returns>3888<example>3889<code>3890// create a new UDPpacket to hold 1024 bytes of data3891UDPpacket *packet;38923893packet=SDLNet_AllocPacket(1024);3894if(!packet) {3895printf("SDLNet_AllocPacket: %s\n", SDLNet_GetError());3896// perhaps do something else since you can't make this packet3897}3898else {3899// do stuff with this new packet3900// SDLNet_FreePacket this packet when finished with it3901}3902</code>3903</example>3904<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>3905<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>3906<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>3907<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)"/>3908<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)"/>3909<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)"/>3910<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)"/>3911<param name="size">3912Size, in bytes, of the data buffer to be allocated in the new UDPpacket. Zero is invalid.3913</param>3914</member>3915<member name="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)">3916<summary>3917Resize the data buffer in a UDPpacket3918</summary>3919<remarks>3920Resize a UDPpackets data buffer to size bytes. The old data buffer will not be retained, so the new buffer is invalid after this call.3921<p>Binds to C-function call in SDL_net.h:3922<code>3923extern DECLSPEC int SDLCALL SDLNet_ResizePacket(UDPpacket *packet, int newsize)3924</code>3925</p>3926</remarks>3927<returns>3928the new size of the data in the packet. If the number returned is less than what you asked for, that's an error.3929</returns>3930<example>3931<code>3932// Resize a UDPpacket to hold 2048 bytes of data3933//UDPpacket *packet;3934int newsize;39353936newsize=SDLNet_ResizePacket(packet, 2048);3937if(newsize<2048) {3938printf("SDLNet_ResizePacket: %s\n", SDLNet_GetError());3939// perhaps do something else since you didn't get the buffer you wanted3940}3941else {3942// do stuff with the resized packet3943}3944</code>3945</example>3946<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>3947<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacket(System.Int32)"/>3948<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>3949<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)"/>3950<param name="packet">3951A pointer to the UDPpacket to be resized.3952</param>3953<param name="newsize">3954The new desired size, in bytes, of the data buffer to be allocated in the UDPpacket.3955Zero is invalid.3956</param>3957</member>3958<member name="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)">3959<summary>3960Free a previously allocated UDPpacket3961</summary>3962<remarks>3963Free a UDPpacket from memory. Do not use this UDPpacket after this function is called on it.3964<p>Binds to C-function call in SDL_net.h:3965<code>3966extern DECLSPEC void SDLCALL SDLNet_FreePacket(UDPpacket *packet)3967</code>3968</p>3969</remarks>3970<returns>3971nothing, this always succeeds.3972</returns>3973<example>3974<code>3975// Free a UDPpacket3976//UDPpacket *packet;39773978SDLNet_FreePacket(packet);3979packet=NULL; //just to help you know that it is freed3980</code>3981</example>3982<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>3983<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacket(System.Int32)"/>3984<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>3985<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacketV(System.IntPtr)"/>3986<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)"/>3987<param name="packet">3988A pointer to the UDPpacket to be freed from memory.3989</param>3990</member>3991<member name="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)">3992<summary>3993Allocate a vector of UDPpackets3994</summary>3995<remarks>3996Create (via malloc) a vector of new UDPpackets, each with data buffers of size bytes. The new packet vector should be freed using SDLNet_FreePacketV when you are done using it. The returned vector is one entry longer than requested, for a terminating NULL.3997<p>Binds to C-function call in SDL_net.h:3998<code>3999extern DECLSPEC UDPpacket ** SDLCALL SDLNet_AllocPacketV(int howmany, int size)4000</code>4001</p>4002</remarks>4003<returns>4004a pointer to a new empty UDPpacket vector. NULL is returned on errors, such as out-of-memory.4005</returns>4006<example>4007<code>4008// create a new UDPpacket vector to hold 1024 bytes of data in 10 packets4009UDPpacket **packetV;40104011packetV=SDLNet_AllocPacketV(10, 1024);4012if(!packetV) {4013printf("SDLNet_AllocPacketV: %s\n", SDLNet_GetError());4014// perhaps do something else since you can't make this packet4015}4016else {4017// do stuff with this new packet vector4018// SDLNet_FreePacketV this packet vector when finished with it4019}4020</code>4021</example>4022<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4023<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>4024<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>4025<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)"/>4026<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)"/>4027<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)"/>4028<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)"/>4029<param name="howmany">4030The number of UDPpackets to allocate.4031</param>4032<param name="size">4033Size, in bytes, of the data buffers to be allocated in the new UDPpackets.4034Zero is invalid.4035</param>4036</member>4037<member name="M:Tao.Sdl.SdlNet.SDLNet_FreePacketV(System.IntPtr)">4038<summary>4039Free a vector of UDPpackets4040</summary>4041<remarks>4042Free a UDPpacket vector from memory. Do not use this UDPpacket vector, or any UDPpacket in it, after this function is called on it.4043<p>Binds to C-function call in SDL_net.h:4044<code>4045extern DECLSPEC void SDLCALL SDLNet_FreePacketV(UDPpacket **packetV)4046</code>4047</p>4048</remarks>4049<returns>4050nothing, this always succeeds.4051</returns>4052<example>4053<code>4054// Free a UDPpacket vector4055//UDPpacket **packet;40564057SDLNet_FreePacketV(packetV);4058packetV=NULL; //just to help you know that it is freed4059</code>4060</example>4061<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4062<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacket(System.Int32)"/>4063<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>4064<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)"/>4065<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)"/>4066<param name="packetV">4067A pointer to the UDPpacket to be freed from memory.4068</param>4069</member>4070<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Open(System.Int16)">4071<summary>4072Create a UDP socket4073</summary>4074<remarks>Open a socket to be used for UDP packet sending and/or receiving.4075If a non-zero port is given it will be used, otherwise any open port4076number will be used automatically. Unlike TCP sockets, this socket4077does not require a remote host IP to connect to, this is because UDP4078ports are never actually connected like TCP ports are. This socket4079is able to send and receive directly after this simple creation.40804081If 'port' is non-zero, the UDP socket is bound to a local port.4082The 'port' should be given in native byte order, but is used4083internally in network (big endian) byte order, in addresses, etc.4084This allows other systems to send to this socket via a known port.4085<p>Binds to C-function call in SDL_net.h:4086<code>4087extern DECLSPEC UDPsocket SDLCALL SDLNet_UDP_Open(Uint16 port)4088</code>4089</p>4090</remarks>4091<returns>4092a valid UDPsocket on success. NULL is returned on errors,4093such as when it's not able to create a socket,4094or it cannot assign the non-zero port as requested.4095</returns>4096<example>4097Note that below I say server, but clients may also open4098a specific port, though it is prefered that a client be4099more flexible, given that the port may be already allocated4100by another process, such as a server. In such a case you4101will not be able to open the socket, and your program4102will be stuck, so it is better to just use whatever port4103you are given by using a specified port of zero.4104Then the client will always work. The client can inform4105the server what port to talk back to, or the server can4106just look at the source of the packets it is receiving4107to know where to respond to.4108<code>4109// create a UDPsocket on port 6666 (server)4110UDPsocket udpsock;41114112udpsock=SDLNet_UDP_Open(6666);4113if(!udpsock) {4114printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());4115exit(2);4116}4117</code>41184119<code>4120// create a UDPsocket on any available port (client)4121UDPsocket udpsock;41224123udpsock=SDLNet_UDP_Open(0);4124if(!udpsock) {4125printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());4126exit(2);4127}4128</code>4129</example>4130<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Close(System.IntPtr)"/>4131<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4132<param name="port">4133This is the port number (in native byte order) on which to receive UDP4134packets. Most servers will want to use a known port number here so that4135clients can easily communicate with the server. This can also be zero,4136which then opens an anonymous unused port number, to most likely be4137used to send UDP packets from.4138</param>4139</member>4140<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)">4141<summary>4142Assign an IP address number to a socket channel4143</summary>4144<remarks>4145Bind an address to a channel on a socket.4146Incoming packets are only allowed from bound addresses for the socket channel.4147All outgoing packets on that channel,4148regardless of the packets internal address,4149will attempt to send once on each bound address on that channel.4150You may assign up to SDLNET_MAX_UDPADDRESSES to each channel.4151<p>Binds to C-function call in SDL_net.h:4152<code>4153extern DECLSPEC int SDLCALL SDLNet_UDP_Bind(UDPsocket sock, int channel, IPaddress *address)4154</code>4155</p>4156</remarks>4157<returns>4158The channel number that was bound. -1 is returned on errors, such as no free channels, or this channel has SDLNET_MAX_UDPADDRESSES already assigned to it, or you have used a channel higher or equal to SDLNET_MAX_UDPCHANNELS, or lower than -1.4159</returns>4160<example>4161<code>4162// Bind address to the first free channel4163//UDPsocket udpsock;4164//IPaddress *address;4165int channel;41664167channel=SDLNet_UDP_Bind(udpsock, -1, address);4168if(channel==-1) {4169printf("SDLNet_UDP_Bind: %s\n", SDLNet_GetError());4170// do something because we failed to bind4171}4172</code>4173</example>4174<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Unbind(System.IntPtr,System.Int32)"/>4175<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_GetPeerAddress(System.IntPtr,System.Int32)"/>4176<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Open(System.Int16)"/>4177<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>4178<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4179<param name="sock">4180the UDPsocket on which to assign the address.4181</param>4182<param name="channel">The channel to assign address to. This should be less than SDLNET_MAX_UDPCHANNELS. If -1 is used, then the first unbound channel will be used, this should only be used for incomming packet filtering, as it will find the first channel with less than SDLNET_MAX_UDPADDRESSES assigned to it and use that one.4183</param>4184<param name="address">4185The resolved IPaddress to assign to the socket's channel.4186The host and port are both used.4187It is not helpful to bind 0.0.0.0 to a channel.4188</param>4189</member>4190<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Unbind(System.IntPtr,System.Int32)">4191<summary>4192Remove all assigned IP addresses from a socket channel4193</summary>4194<remarks>4195This removes all previously assigned (bound) addresses4196from a socket channel.4197After this you may bind new addresses to the socket4198channel.4199<p>Binds to C-function call in SDL_net.h:4200<code>4201extern DECLSPEC void SDLCALL SDLNet_UDP_Unbind(UDPsocket sock, int channel)4202</code>4203</p>4204</remarks>4205<returns>4206nothing, this always succeeds.4207</returns>4208<example>4209<code>4210// unbind all addresses on the UDPsocket channel 04211//UDPsocket udpsock;42124213SDLNet_UDP_Unbind(udpsock, 0);4214</code>4215</example>4216<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4217<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Close(System.IntPtr)"/>4218<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4219<param name="sock">4220A valid UDPsocket to unbind addresses from.4221</param>4222<param name="channel">4223The channel to unbind the addresses from in the UDPsocket.4224</param>4225</member>4226<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_GetPeerAddress(System.IntPtr,System.Int32)">4227<summary>4228Get the assigned IP address for a socket channel or get4229the port you opened the socket with4230</summary>4231<remarks>4232Get the primary address assigned to this channel.4233Only the first bound address is returned.4234When channel is -1, get the port that this socket4235is bound to on the local computer,4236this only means something if you opened the socket4237with a specific port number.4238Do not free the returned IPaddress pointer.4239<p>Binds to C-function call in SDL_net.h:4240<code>4241extern DECLSPEC IPaddress * SDLCALL SDLNet_UDP_GetPeerAddress(UDPsocket sock, int channel)4242</code>4243</p>4244</remarks>4245<returns>4246a pointer to an IPaddress.4247NULL is returned for unbound channels and on any errors.4248</returns>4249<example>4250<code>4251// get the primary address bound to UDPsocket channel 042524253//UDPsocket udpsock;4254//IPaddress *address;42554256address=SDLNet_UDP_GetPeerAddress(udpsock, 0);4257if(!address) {4258printf("SDLNet_UDP_GetPeerAddress: %s\n", SDLNet_GetError());4259// do something because we failed to get the address4260}4261else {4262// perhaps print out address->host and address->port4263}4264</code>4265</example>4266<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Unbind(System.IntPtr,System.Int32)"/>4267<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4268<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4269<param name="sock">4270A valid UDPsocket that probably has an address assigned to the channel.4271</param>4272<param name="channel">4273The channel to get the primary address from in the socket.4274This may also be -1 to get the port which this socket is4275bound to on the local computer.4276</param>4277</member>4278<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)">4279<summary>4280Send a UDPpacket vector4281</summary>4282<remarks>4283Send npackets of packetV using the specified sock socket.4284Each packet is sent in the same way as in SDLNet_UDP_Send4285(see section 3.4.6 SDLNet_UDP_Send).4286Don't forget to set the length of the packets in the len4287element of the packets you are sending!4288<p>Binds to C-function call in SDL_net.h:4289<code>4290extern DECLSPEC int SDLCALL SDLNet_UDP_SendV(UDPsocket sock, UDPpacket **packets, int npackets)4291</code>4292</p>4293</remarks>4294<returns>4295The number of destinations sent to that worked,4296for each packet in the vector, all summed up.42970 is returned on errors.4298</returns>4299<example>4300<code>4301// send a vector of 10 packets using UDPsocket4302//UDPsocket udpsock;4303//UDPpacket **packetV;4304int numsent;43054306numsent=SDLNet_UDP_SendV(udpsock, packetV, 10);4307if(!numsent) {4308printf("SDLNet_UDP_SendV: %s\n", SDLNet_GetError());4309// do something because we failed to send4310// this may just be because no addresses are bound to the channels...4311}4312</code>4313</example>4314<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4315<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)"/>4316<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Recv(System.IntPtr,System.IntPtr)"/>4317<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_RecvV(System.IntPtr,System.IntPtr)"/>4318<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4319<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4320<param name="sock">4321A valid UDPsocket.4322</param>4323<param name="packets">4324The vector of packets to send.4325</param>4326<param name="npackets">4327number of packets in the packetV vector to send.4328</param>4329</member>4330<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)">4331<summary>4332Send a UDPpacket4333</summary>4334<remarks>4335Send packet using the specified socket sock, using the4336specified channel or else the packet's address.4337If channel is not -1 then the packet is sent to all the4338socket channels bound addresses. If socket sock's channel4339is not bound to any destinations, then the packet is not4340sent at all!4341If the channel is -1, then the packet's address is used4342as the destination.4343Don't forget to set the length of the packet in the len4344element of the packet you are sending! NOTE: the packet->channel4345will be set to the channel passed in to this function.4346<p>Binds to C-function call in SDL_net.h:4347<code>4348extern DECLSPEC int SDLCALL SDLNet_UDP_Send(UDPsocket sock, int channel, UDPpacket *packet)4349</code>4350</p>4351</remarks>4352<returns>4353The number of destinations sent to that worked.43540 is returned on errors.Note that since a channel can4355point to multiple destinations, there should be just as4356many packets sent, so dont assume it will always return 14357on success. Unfortunately there's no way to get the number4358of destinations bound to a channel, so either you have to4359remember the number bound, or just test for the zero4360return value indicating all channels failed.4361</returns>4362<example>4363<code>4364// send a packet using a UDPsocket, using the packet's channel as the channel4365//UDPsocket udpsock;4366//UDPpacket *packet;4367int numsent;43684369numsent=SDLNet_UDP_Send(udpsock, packet->channel, packet);4370if(!numsent) {4371printf("SDLNet_UDP_Send: %s\n", SDLNet_GetError());4372// do something because we failed to send4373// this may just be because no addresses are bound to the channel...4374}4375</code>4376Here's a way of sending one packet using it's internal channel setting.4377This is actually what SDLNet_UDP_Send ends up calling for you.4378<code>4379// send a packet using a UDPsocket, using the packet's channel as the channel4380//UDPsocket udpsock;4381//UDPpacket *packet;4382int numsent;43834384numsent=SDLNet_UDP_SendV(sock, &packet, 1);4385if(!numsent) {4386printf("SDLNet_UDP_SendV: %s\n", SDLNet_GetError());4387// do something because we failed to send4388// this may just be because no addresses are bound to the channel...4389}4390</code>4391</example>4392<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4393<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)"/>4394<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Recv(System.IntPtr,System.IntPtr)"/>4395<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_RecvV(System.IntPtr,System.IntPtr)"/>4396<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4397<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4398<param name="sock">4399A valid UDPsocket.4400</param>4401<param name="channel">4402what channel to send packet on.4403</param>4404<param name="packet">4405The packet to send.4406</param>4407</member>4408<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_RecvV(System.IntPtr,System.IntPtr)">4409<summary>4410Receive into a UDPpacket vector4411</summary>4412<remarks>4413Receive into a packet vector on the specified socket sock.4414packetV is a NULL terminated array. Packets will be4415received until the NULL is reached, or there are none4416ready to be received.4417This call is otherwise the same as SDLNet_UDP_Recv4418<p>Binds to C-function call in SDL_net.h:4419<code>4420extern DECLSPEC int SDLCALL SDLNet_UDP_RecvV(UDPsocket sock, UDPpacket **packets)4421</code>4422</p>4423</remarks>4424<returns>4425the number of packets received.44260 is returned when no packets are received.4427-1 is returned on errors.4428</returns>4429<example>4430<code>4431// try to receive some waiting udp packets4432//UDPsocket udpsock;4433//UDPpacket **packetV;4434int numrecv, i;44354436numrecv=SDLNet_UDP_RecvV(udpsock, &packetV);4437if(numrecv==-1) {4438// handle error, perhaps just print out the SDL_GetError string.4439}4440for(i=0; i<numrecv; i++) {4441// do something with packetV[i]4442}4443</code>4444</example>4445<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4446<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)"/>4447<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)"/>4448<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Recv(System.IntPtr,System.IntPtr)"/>4449<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4450<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4451<param name="sock">4452A valid UDPsocket.4453</param>4454<param name="packets">4455The packet vector to receive into.4456</param>4457</member>4458<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Recv(System.IntPtr,System.IntPtr)">4459<summary>4460Receive into a UDPpacket4461</summary>4462<remarks>4463Receive a packet on the specified sock socket.4464The packet you pass in must have enough of a data size4465allocated for the incoming packet data to fit into.4466This means you should have knowledge of your size needs4467before trying to receive UDP packets.4468The packet will have it's address set to the remote4469sender's address.4470The socket's channels are checked in highest to lowest4471order, so if an address is bound to multiple channels,4472the highest channel with the source address bound will4473be retreived before the lower bound channels. So, the4474packets channel will also be set to the highest numbered4475channel that has the remote address and port assigned to4476it. Otherwise the channel will -1, which you can filter4477out easily if you want to ignore unbound source address.4478Note that the local and remote channel numbers do not have4479to, and probably won't, match, as they are only local4480settings, they are not sent in the packet.4481This is a non-blocking call, meaning if there's no data4482ready to be received the function will return.4483<p>Binds to C-function call in SDL_net.h:4484<code>4485extern DECLSPEC int SDLCALL SDLNet_UDP_Recv(UDPsocket sock, UDPpacket *packet)4486</code>4487</p>4488</remarks>4489<returns>44901 is returned when a packet is received.44910 is returned when no packets are received.4492-1 is returned on errors.4493</returns>4494<example>4495<code>4496// try to receive some waiting udp packets4497//UDPsocket udpsock;4498//UDPpacket packet;4499int numrecv;45004501numrecv=SDLNet_UDP_Recv(udpsock, &packet);4502if(numrecv) {4503// do something with packet4504}4505</code>4506</example>4507<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Bind(System.IntPtr,System.Int32,Tao.Sdl.SdlNet.IPaddress@)"/>4508<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Send(System.IntPtr,System.Int32,System.IntPtr)"/>4509<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_SendV(System.IntPtr,System.IntPtr,System.Int32)"/>4510<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_RecvV(System.IntPtr,System.IntPtr)"/>4511<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>4512<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4513<param name="sock">4514A valid UDPsocket.4515</param>4516<param name="packet">4517The packet to receive into.4518</param>4519</member>4520<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_Close(System.IntPtr)">4521<summary>4522Close and free a UDP socket4523</summary>4524<remarks>4525Shutdown, close, and free a UDPsocket.4526Don't use the UDPsocket after calling this,4527except to open a new one.4528<p>Binds to C-function call in SDL_net.h:4529<code>4530extern DECLSPEC void SDLCALL SDLNet_UDP_Close(UDPsocket sock)4531</code>4532</p>4533</remarks>4534<returns>4535nothing, this always succeeds.4536</returns>4537<example>4538<code>4539// unbind all addresses on the UDPsocket channel 04540//UDPsocket udpsock;45414542SDLNet_UDP_Close(udpsock);4543udpsock=NULL; //this helps us know that this UDPsocket is not valid anymore4544</code>4545</example>4546<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_UDP_Open(System.Int16)"/>4547<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4548<param name="sock">4549A valid UDPsocket to shutdown, close, and free.4550</param>4551</member>4552<member name="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)">4553<summary>4554Create a new socket set4555</summary>4556<remarks>4557Create a socket set that will be able to watch up to4558maxsockets number of sockets. The same socket set can4559be used for both UDP and TCP sockets.4560<p>Binds to C-function call in SDL_net.h:4561<code>4562extern DECLSPEC SDLNet_SocketSet SDLCALL SDLNet_AllocSocketSet(int maxsockets)4563</code>4564</p>4565</remarks>4566<returns>4567A new, empty, SDLNet_SocketSet. NULL is returned on errors, such as out-of-memory.4568</returns>4569<example>4570<code>4571// Create a socket set to handle up to 16 sockets4572SDLNet_SocketSet set;45734574set=SDLNet_AllocSocketSet(16);4575if(!set) {4576printf("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());4577exit(1); //most of the time this is a major error, but do what you want.4578}4579</code>4580</example>4581<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreeSocketSet(Tao.Sdl.SdlNet.SDLNet_SocketSet)"/>4582<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4583<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4584<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4585<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4586<param name="maxsockets">4587The maximum number of sockets you will want to watch.4588</param>4589</member>4590<member name="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)">4591<summary>4592Add a socket to a socket set4593</summary>4594<remarks>4595Add a socket to a socket set that will be watched.4596<p>Binds to C-function call in SDL_net.h:4597<code>4598extern DECLSPEC int SDLCALL SDLNet_AddSocket(SDLNet_SocketSet set, SDLNet_GenericSocket sock)4599</code>4600</p>4601</remarks>4602<returns>4603the number of sockets used in the set on success. -1 is returned on errors.4604</returns>4605<example>4606<code>4607// add two sockets to a socket set4608//SDLNet_SocketSet set;4609//UDPsocket udpsock;4610//TCPsocket tcpsock;4611int numused;46124613numused=SDLNet_UDP_AddSocket(set,udpsock);4614if(numused==-1) {4615printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4616// perhaps you need to restart the set and make it bigger...4617}4618numused=SDLNet_TCP_AddSocket(set,tcpsock);4619if(numused==-1) {4620printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4621// perhaps you need to restart the set and make it bigger...4622}4623</code>4624</example>4625<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>4626<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4627<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_CheckSockets(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.Int32)"/>4628<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4629<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4630<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4631<param name="set">4632The socket set to add this socket to4633</param>4634<param name="sock">4635The socket to add to the socket set4636</param>4637</member>4638<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.IntPtr)">4639<summary>4640Add a socket to a socket set4641</summary>4642<remarks>4643Add a socket to a socket set that will be watched.4644<p>Binds to C-function call in SDL_net.h:4645<code>4646#define SDLNet_TCP_AddSocket(set, sock) SDLNet_AddSocket(set, (SDLNet_GenericSocket)sock)4647</code>4648</p>4649</remarks>4650<returns>4651the number of sockets used in the set on success. -1 is returned on errors.4652</returns>4653<example>4654<code>4655// add two sockets to a socket set4656//SDLNet_SocketSet set;4657//UDPsocket udpsock;4658//TCPsocket tcpsock;4659int numused;46604661numused=SDLNet_UDP_AddSocket(set,udpsock);4662if(numused==-1) {4663printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4664// perhaps you need to restart the set and make it bigger...4665}4666numused=SDLNet_TCP_AddSocket(set,tcpsock);4667if(numused==-1) {4668printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4669// perhaps you need to restart the set and make it bigger...4670}4671</code>4672</example>4673<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>4674<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4675<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_CheckSockets(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.Int32)"/>4676<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4677<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4678<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4679<param name="set">4680The socket set to add this socket to4681</param>4682<param name="sock">4683The socket to add to the socket set4684</param>4685</member>4686<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.IntPtr)">4687<summary>4688Add a socket to a socket set4689</summary>4690<remarks>4691Add a socket to a socket set that will be watched.4692<p>Binds to C-function call in SDL_net.h:4693<code>4694#define SDLNet_UDP_AddSocket(set, sock) SDLNet_AddSocket(set, (SDLNet_GenericSocket)sock)4695</code>4696</p>4697</remarks>4698<returns>4699the number of sockets used in the set on success. -1 is returned on errors.4700</returns>4701<example>4702<code>4703// add two sockets to a socket set4704//SDLNet_SocketSet set;4705//UDPsocket udpsock;4706//TCPsocket tcpsock;4707int numused;47084709numused=SDLNet_UDP_AddSocket(set,udpsock);4710if(numused==-1) {4711printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4712// perhaps you need to restart the set and make it bigger...4713}4714numused=SDLNet_TCP_AddSocket(set,tcpsock);4715if(numused==-1) {4716printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());4717// perhaps you need to restart the set and make it bigger...4718}4719</code>4720</example>4721<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>4722<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4723<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_CheckSockets(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.Int32)"/>4724<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4725<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4726<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4727<param name="set">4728The socket set to add this socket to4729</param>4730<param name="sock">4731The socket to add to the socket set4732</param>4733</member>4734<member name="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)">4735<summary>4736Remove a socket from a socket set4737</summary>4738<remarks>4739Free the socket set from memory.4740Do not reference the set after this call,4741except to allocate a new one.4742<p>Binds to C-function call in SDL_net.h:4743<code>4744extern DECLSPEC int SDLCALL SDLNet_DelSocket(SDLNet_SocketSet set, SDLNet_GenericSocket sock)4745</code>4746</p>4747</remarks>4748<returns>4749the number of sockets used in the set on success. -1 is returned on errors.4750</returns>4751<example>4752<code>4753// remove two sockets from a socket set4754//SDLNet_SocketSet set;4755//UDPsocket udpsock;4756//TCPsocket tcpsock;4757int numused;47584759numused=SDLNet_UDP_DelSocket(set,udpsock);4760if(numused==-1) {4761printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4762// perhaps the socket is not in the set4763}4764numused=SDLNet_TCP_DelSocket(set,tcpsock);4765if(numused==-1) {4766printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4767// perhaps the socket is not in the set4768}4769</code>4770</example>4771<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4772<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreeSocketSet(Tao.Sdl.SdlNet.SDLNet_SocketSet)"/>4773<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4774<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4775<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4776<param name="set">4777The socket set to remove this socket from4778</param>4779<param name="sock">4780the socket to remove from the socket set4781</param>4782</member>4783<member name="M:Tao.Sdl.SdlNet.SDLNet_TCP_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.IntPtr)">4784<summary>4785Remove a socket from a socket set4786</summary>4787<remarks>4788Free the socket set from memory.4789Do not reference the set after this call,4790except to allocate a new one.4791<p>Binds to C-function call in SDL_net.h:4792<code>4793#define SDLNet_TCP_DelSocket(set, sock) SDLNet_DelSocket(set, (SDLNet_GenericSocket)sock)4794</code>4795</p>4796</remarks>4797<returns>4798the number of sockets used in the set on success. -1 is returned on errors.4799</returns>4800<example>4801<code>4802// remove two sockets from a socket set4803//SDLNet_SocketSet set;4804//UDPsocket udpsock;4805//TCPsocket tcpsock;4806int numused;48074808numused=SDLNet_UDP_DelSocket(set,udpsock);4809if(numused==-1) {4810printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4811// perhaps the socket is not in the set4812}4813numused=SDLNet_TCP_DelSocket(set,tcpsock);4814if(numused==-1) {4815printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4816// perhaps the socket is not in the set4817}4818</code>4819</example>4820<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4821<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreeSocketSet(Tao.Sdl.SdlNet.SDLNet_SocketSet)"/>4822<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4823<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4824<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4825<param name="set">4826The socket set to remove this socket from4827</param>4828<param name="sock">4829the socket to remove from the socket set4830</param>4831</member>4832<member name="M:Tao.Sdl.SdlNet.SDLNet_UDP_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.IntPtr)">4833<summary>4834Remove a socket from a socket set4835</summary>4836<remarks>4837Free the socket set from memory.4838Do not reference the set after this call,4839except to allocate a new one.4840<p>Binds to C-function call in SDL_net.h:4841<code>4842#define SDLNet_UDP_DelSocket(set, sock) SDLNet_DelSocket(set, (SDLNet_GenericSocket)sock)4843</code>4844</p>4845</remarks>4846<returns>4847the number of sockets used in the set on success. -1 is returned on errors.4848</returns>4849<example>4850<code>4851// remove two sockets from a socket set4852//SDLNet_SocketSet set;4853//UDPsocket udpsock;4854//TCPsocket tcpsock;4855int numused;48564857numused=SDLNet_UDP_DelSocket(set,udpsock);4858if(numused==-1) {4859printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4860// perhaps the socket is not in the set4861}4862numused=SDLNet_TCP_DelSocket(set,tcpsock);4863if(numused==-1) {4864printf("SDLNet_DelSocket: %s\n", SDLNet_GetError());4865// perhaps the socket is not in the set4866}4867</code>4868</example>4869<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4870<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreeSocketSet(Tao.Sdl.SdlNet.SDLNet_SocketSet)"/>4871<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4872<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4873<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4874<param name="set">4875The socket set to remove this socket from4876</param>4877<param name="sock">4878the socket to remove from the socket set4879</param>4880</member>4881<member name="M:Tao.Sdl.SdlNet.SDLNet_CheckSockets(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.Int32)">4882<summary>4883Check and wait for sockets in a set to have activity4884</summary>4885<remarks>4886Check all sockets in the socket set for activity. If a non-zero timeout is given then this function will wait for activity, or else it will wait for timeout milliseconds.4887NOTE: "activity" also includes disconnections and other errors, which would be determined by a failed read/write attempt.4888<p>Binds to C-function call in SDL_net.h:4889<code>4890extern DECLSPEC int SDLCALL SDLNet_CheckSockets(SDLNet_SocketSet set, Uint32 timeout)4891</code>4892</p>4893</remarks>4894<returns>4895the number of sockets with activity. -1 is returned on errors, and you may not get a meaningful error message. -1 is also returned for an empty set (nothing to check).4896</returns>4897<example>4898<code>4899// Wait for up to 1 second for network activity4900//SDLNet_SocketSet set;4901int numready;49024903numready=SDLNet_CheckSockets(set, 1000);4904if(numready==-1) {4905printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());4906//most of the time this is a system error, where perror might help you.4907perror("SDLNet_CheckSockets");4908}4909else if(numready) {4910printf("There are %d sockets with activity!\n",numready);4911// check all sockets with SDLNet_SocketReady and handle the active ones.4912}4913</code>4914</example>4915<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_SocketReady(System.IntPtr)"/>4916<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4917<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4918<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>4919<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>4920<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>4921<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>4922<param name="set">4923The socket set to check4924</param>4925<param name="timeout">4926The amount of time (in milliseconds).49270 means no waiting.4928-1 means to wait over 49 days! (think about it)4929</param>4930</member>4931<member name="M:Tao.Sdl.SdlNet.SDLNet_SocketReady(System.IntPtr)">4932<summary>4933See if a socket has activity4934</summary>4935<remarks>4936Check whether a socket has been marked as active. This function should only be used on a socket in a socket set, and that set has to have had SDLNet_CheckSockets (see SDLNet_CheckSockets) called upon it.4937<p>Binds to C-function call in SDL_net.h:4938<code>4939#define SDLNet_SocketReady(sock) ((sock != NULL) && ((SDLNet_GenericSocket)sock)->ready)4940</code>4941</p>4942</remarks>4943<returns>4944non-zero for activity. zero is returned for no activity.4945</returns>4946<example>4947<code>4948// Wait forever for a connection attempt4949//SDLNet_SocketSet set;4950//TCPsocket serversock, client;4951int numready;49524953numready=SDLNet_CheckSockets(set, 1000);4954if(numready==-1) {4955printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());4956//most of the time this is a system error, where perror might help you.4957perror("SDLNet_CheckSockets");4958}4959else if(numready) {4960printf("There are %d sockets with activity!\n",numready);4961// check all sockets with SDLNet_SocketReady and handle the active ones.4962if(SDLNet_SocketReady(serversock)) {4963client=SDLNet_TCP_Accept(serversock);4964if(client) {4965// play with the client.4966}4967}4968}4969</code>4970To just quickly do network handling with no waiting, we do this.4971<code>4972// Check for, and handle UDP data4973//SDLNet_SocketSet set;4974//UDPsocket udpsock;4975//UDPpacket *packet;4976int numready, numpkts;49774978numready=SDLNet_CheckSockets(set, 0);4979if(numready==-1) {4980printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());4981//most of the time this is a system error, where perror might help you.4982perror("SDLNet_CheckSockets");4983}4984else if(numready) {4985printf("There are %d sockets with activity!\n",numready);4986// check all sockets with SDLNet_SocketReady and handle the active ones.4987if(SDLNet_SocketReady(udpsock)) {4988numpkts=SDLNet_UDP_Recv(udpsock,&packet);4989if(numpkts) {4990// process the packet.4991}4992}4993}4994</code>4995</example>4996<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_CheckSockets(Tao.Sdl.SdlNet.SDLNet_SocketSet,System.Int32)"/>4997<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4998<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_DelSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>4999<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>5000<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>5001<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5002<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>5003<param name="sock">5004The socket to check for activity.5005Both UDPsocket and TCPsocket can be used with this function.5006</param>5007</member>5008<member name="M:Tao.Sdl.SdlNet.SDLNet_FreeSocketSet(Tao.Sdl.SdlNet.SDLNet_SocketSet)">5009<summary>5010Free a socket set5011</summary>5012<remarks>5013Free the socket set from memory.5014Do not reference the set after this call,5015except to allocate a new one.5016<p>Binds to C-function call in SDL_net.h:5017<code>5018extern DECLSPEC void SDLCALL SDLNet_FreeSocketSet(SDLNet_SocketSet set)5019</code>5020</p>5021</remarks>5022<returns>5023nothing, this call always succeeds.5024</returns>5025<example>5026<code>5027// free a socket set5028//SDLNet_SocketSet set;50295030SDLNet_FreeSocketSet(set);5031set=NULL; //this helps us remember that this set is not allocated5032</code>5033</example>5034<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocSocketSet(System.Int32)"/>5035<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AddSocket(Tao.Sdl.SdlNet.SDLNet_SocketSet,Tao.Sdl.SdlNet.SDLNet_GenericSocket)"/>5036<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_SocketSet"/>5037<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5038<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>5039<param name="set">5040The socket set to free from memory5041</param>5042</member>5043<member name="T:Tao.Sdl.SdlNet.IPaddress">5044<summary>5045IP Address and Port number5046</summary>5047<remarks>5048This type contains the information used to5049form network connections and sockets.5050<p>Binds to C-function call in SDL_net.h:5051<code>5052typedef struct {5053Uint32 host;5054Uint16 port;5055} IPaddress;5056</code>5057</p>5058</remarks>5059<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>5060<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_TCP_Open(Tao.Sdl.SdlNet.IPaddress@)"/>5061<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResolveHost(Tao.Sdl.SdlNet.IPaddress@,System.String,System.Int16)"/>5062<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResolveIP(Tao.Sdl.SdlNet.IPaddress@)"/>5063</member>5064<member name="F:Tao.Sdl.SdlNet.IPaddress.host">5065<summary>5066The 32-bit IPv4 address of a host, encoded in Network Byte5067Order.5068</summary>5069</member>5070<member name="F:Tao.Sdl.SdlNet.IPaddress.port">5071<summary>5072The 16-bit IPv4 port number of a socket,5073encoded in Network Byte Order.5074</summary>5075</member>5076<member name="T:Tao.Sdl.SdlNet.UDPpacket">5077<summary>5078UDP packet data encapsulation5079</summary>5080<remarks>5081This struct is used with UDPsockets to send and receive data.5082It also helps keep track of a packets sending/receiving5083settings and status. The channels concept helps prioritize,5084or segregate differring types of data packets.5085<p>Binds to C-function call in SDL_net.h:5086<code>5087typedef struct {5088int channel;5089Uint8 *data;5090int len;5091int maxlen;5092int status;5093IPaddress address;5094} UDPpacket;5095</code>5096</p>5097</remarks>5098<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5099<seealso cref="T:Tao.Sdl.SdlNet.IPaddress"/>5100<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacket(System.Int32)"/>5101<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_ResizePacket(System.IntPtr,System.Int32)"/>5102<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacket(System.IntPtr)"/>5103<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_AllocPacketV(System.Int32,System.Int32)"/>5104<seealso cref="M:Tao.Sdl.SdlNet.SDLNet_FreePacketV(System.IntPtr)"/>5105</member>5106<member name="F:Tao.Sdl.SdlNet.UDPpacket.channel">5107<summary>5108The (software) channel number for this packet.5109This can also be used as a priority value for the packet.5110If no channel is assigned, the value is -1.5111</summary>5112</member>5113<member name="F:Tao.Sdl.SdlNet.UDPpacket.data">5114<summary>5115The data contained in this packet, this is the meat.5116</summary>5117</member>5118<member name="F:Tao.Sdl.SdlNet.UDPpacket.len">5119<summary>5120This is the meaningful length of the data in bytes.5121</summary>5122</member>5123<member name="F:Tao.Sdl.SdlNet.UDPpacket.maxlen">5124<summary>5125This is size of the data buffer, which may be larger5126than the meaningful length. This is only used for5127packet creation on the senders side.5128</summary>5129</member>5130<member name="F:Tao.Sdl.SdlNet.UDPpacket.status">5131<summary>5132This contains the number of bytes sent, or a -1 on errors,5133after sending. This is useless for a received packet.5134</summary>5135</member>5136<member name="F:Tao.Sdl.SdlNet.UDPpacket.address">5137<summary>5138This is the resolved IPaddress to be used when sending,5139or it is the remote source of a received packet.5140</summary>5141</member>5142<member name="T:Tao.Sdl.SdlNet.TCPsocket">5143<summary>5144TCP socket type (opaque)5145</summary>5146<remarks>5147This is an opaque data type used for TCP connections.5148This is a pointer, and so it could be NULL at times.5149NULL would indicate no socket has been established.5150<code>5151typedef struct _TCPsocket *TCPsocket5152</code>5153</remarks>5154<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5155<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_GenericSocket"/>5156</member>5157<member name="T:Tao.Sdl.SdlNet.UDPsocket">5158<summary>5159UDP socket type (opaque)5160</summary>5161<remarks>5162This is an opaque data type used for UDP sockets.5163This is a pointer, and so it could be NULL at times.5164NULL would indicate no socket has been established.5165<code>5166typedef struct _UDPsocket *UDPsocket5167</code>5168</remarks>5169<seealso cref="T:Tao.Sdl.SdlNet.UDPpacket"/>5170<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>5171<seealso cref="T:Tao.Sdl.SdlNet.SDLNet_GenericSocket"/>5172</member>5173<member name="T:Tao.Sdl.SdlNet.SDLNet_SocketSet">5174<summary>5175Socket Set type (opaque)5176</summary>5177<remarks>5178This is an opaque data type used for socket sets.5179This is a pointer, and so it could be NULL at times.5180NULL would indicate no socket set has been created.5181<code>5182typedef struct _SDLNet_SocketSet *SDLNet_SocketSet5183</code>5184</remarks>5185<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>5186<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5187</member>5188<member name="T:Tao.Sdl.SdlNet.SDLNet_GenericSocket">5189<summary>5190A generic type for UDP and TCP sockets5191</summary>5192<remarks>5193This data type is able to be used for both UDPsocket5194and TCPsocket types.5195After calling SDLNet_CheckSockets,5196if this socket is in SDLNet_SocketSet used,5197the ready will be set according to activity on the socket.5198This is the only real use for this type, as it doesn't5199help you know what type of socket it is.5200<code>5201typedef struct {5202int ready;5203} *SDLNet_GenericSocket;5204</code>5205</remarks>5206<seealso cref="T:Tao.Sdl.SdlNet.TCPsocket"/>5207<seealso cref="T:Tao.Sdl.SdlNet.UDPsocket"/>5208</member>5209<member name="F:Tao.Sdl.SdlNet.SDLNet_GenericSocket.ready">5210<summary>5211Non-zero when data is ready to be read,5212or a server socket has a connection attempt5213ready to be accepted.5214</summary>5215</member>5216<member name="T:Tao.Sdl.Smpeg">5217<summary>5218SMPEG bindings for .NET.5219<p></p>5220</summary>5221<remarks>5222</remarks>5223</member>5224<member name="F:Tao.Sdl.Smpeg.SMPEG_NATIVE_LIBRARY">5225<summary>5226Specifies Smpeg's native library archive.5227</summary>5228<remarks>5229Specifies smpeg.dll everywhere; will be mapped via .config for mono.5230</remarks>5231</member>5232<member name="F:Tao.Sdl.Smpeg.CALLING_CONVENTION">5233<summary>5234Specifies the calling convention.5235</summary>5236<remarks>5237Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>5238for Windows and Linux.5239</remarks>5240</member>5241<member name="F:Tao.Sdl.Smpeg.SMPEG_FILTER_INFO_MB_ERROR">5242<summary>5243Filter info flag5244</summary>5245</member>5246<member name="F:Tao.Sdl.Smpeg.SMPEG_FILTER_INFO_PIXEL_ERROR">5247<summary>5248Filter info flag5249</summary>5250</member>5251<member name="F:Tao.Sdl.Smpeg.SMPEG_MAJOR_VERSION">5252<summary>5253Major Version5254</summary>5255</member>5256<member name="F:Tao.Sdl.Smpeg.SMPEG_MINOR_VERSION">5257<summary>5258Minor Version5259</summary>5260</member>5261<member name="F:Tao.Sdl.Smpeg.SMPEG_PATCHLEVEL">5262<summary>5263Patch Version5264</summary>5265</member>5266<member name="F:Tao.Sdl.Smpeg.SMPEG_ERROR">5267<summary>5268MPEG status code.5269</summary>5270<remarks>5271Part of SMPEGstatus C-style enum5272</remarks>5273</member>5274<member name="F:Tao.Sdl.Smpeg.SMPEG_STOPPED">5275<summary>5276MPEG status code.5277</summary>5278<remarks>5279Part of SMPEGstatus C-style enum5280</remarks>5281</member>5282<member name="F:Tao.Sdl.Smpeg.SMPEG_PLAYING">5283<summary>5284MPEG status code.5285</summary>5286<remarks>5287Part of SMPEGstatus C-style enum5288</remarks>5289</member>5290<member name="M:Tao.Sdl.Smpeg.SMPEGfilter_null">5291<summary>5292The null filter (default).5293It simply copies the source rectangle to the video overlay.5294</summary>5295<remarks>5296<p>Binds to C-function in MPEGfilter.h5297<code>5298SMPEG_Filter * SMPEGfilter_null(void)5299</code></p></remarks>5300<returns>IntPtr to <see cref="T:Tao.Sdl.Smpeg.SMPEG_Filter"/></returns>5301<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_bilinear"/>5302<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_deblocking"/>5303</member>5304<member name="M:Tao.Sdl.Smpeg.SMPEGfilter_bilinear">5305<summary>5306The bilinear filter.5307A basic low-pass filter that will produce a smoother image.5308</summary>5309<remarks>5310<p>Binds to C-function in MPEGfilter.h5311<code>5312SMPEG_Filter * SMPEGfilter_bilinear(void)5313</code></p></remarks>5314<returns>IntPtr to <see cref="T:Tao.Sdl.Smpeg.SMPEG_Filter"/></returns>5315<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_null"/>5316<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_deblocking"/>5317</member>5318<member name="M:Tao.Sdl.Smpeg.SMPEGfilter_deblocking">5319<summary>5320The deblocking filter.5321It filters block borders and non-intra coded blocks5322to reduce blockiness5323</summary>5324<remarks>5325<p>Binds to C-function in MPEGfilter.h5326<code>5327SMPEG_Filter * SMPEGfilter_deblocking(void)5328</code></p></remarks>5329<returns>IntPtr to <see cref="T:Tao.Sdl.Smpeg.SMPEG_Filter"/></returns>5330<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_null"/>5331<seealso cref="M:Tao.Sdl.Smpeg.SMPEGfilter_bilinear"/>5332</member>5333<member name="M:Tao.Sdl.Smpeg.SMPEG_VERSION">5334<summary>5335This method can be used to fill a version structure with the compile-time5336version of the SMPEG library.5337</summary>5338<returns>5339This function returns a <see cref="T:Tao.Sdl.Smpeg.SMPEG_version"/> struct containing the5340compiled version number5341</returns>5342<remarks>5343<p>5344Binds to C-function call in smpeg.h:5345<code>#define SMPEG_VERSION(X)5346{5347(X)->major = SMPEG_MAJOR_VERSION;5348(X)->minor = SMPEG_MINOR_VERSION;5349(X)->patch = SMPEG_PATCHLEVEL;5350}</code>5351</p>5352</remarks>5353</member>5354<member name="M:Tao.Sdl.Smpeg.SMPEG_new(System.String,Tao.Sdl.Smpeg.SMPEG_Info@,System.Int32)">5355<summary>5356Create a new SMPEG object from an MPEG file.5357</summary>5358<remarks>5359<p>Binds to a C-function call in smpeg.h5360<code>SMPEG* SMPEG_new(const char *file, SMPEG_Info* info, int sdl_audio);5361</code></p></remarks>5362<param name="file"></param>5363<param name="info">On return, if 'info' is not NULL,5364it will be filled with information about the MPEG object.</param>5365<param name="sdl_audio">5366The sdl_audio parameter indicates if SMPEG should5367initialize the SDL audio5368subsystem. If not, you will have to use the5369SMPEG_playaudio() function below5370to extract the decoded data. Never set this parameter to false (i.e. 0).5371This will cause the video playback to run very slowly.5372To disable audio,5373use the <see cref="M:Tao.Sdl.Smpeg.SMPEG_enableaudio(System.IntPtr,System.Int32)"/> function.</param>5374<returns>This function returns a new SMPEG object.5375Use SMPEG_error() to find out whether or not there5376was a problem building the MPEG stream.</returns>5377</member>5378<member name="M:Tao.Sdl.Smpeg.SMPEG_new_descr(System.Int32,Tao.Sdl.Smpeg.SMPEG_Info@,System.Int32)">5379<summary>5380Create a new SMPEG object from a file descriptor.5381</summary>5382<remarks>5383<p>Binds to a C-function call in smpeg.h5384<code>SMPEG* SMPEG_new_descr(int file, SMPEG_Info* info, int sdl_audio)5385</code></p></remarks>5386<param name="file"></param>5387<param name="info">On return, if 'info' is not NULL,5388it will be filled with information about the MPEG object.</param>5389<param name="sdl_audio">5390The sdl_audio parameter indicates if SMPEG should5391initialize the SDL audio5392subsystem. If not, you will have to use the5393SMPEG_playaudio() function below5394to extract the decoded data.</param>5395<returns>This function returns a new SMPEG object.5396Use SMPEG_error() to find out whether or not there5397was a problem building the MPEG stream.</returns>5398</member>5399<member name="M:Tao.Sdl.Smpeg.SMPEG_new_data(System.Object,System.Int32,Tao.Sdl.Smpeg.SMPEG_Info@,System.Int32)">5400<summary>5401Create a new SMPEG object from for a raw chunk of data.5402</summary>5403<remarks>5404SMPEG makes a copy of the data, so the application is free to5405delete after a successful call to this function.5406<p>Binds to a C-function call in smpeg.h5407<code>5408SMPEG* SMPEG_new_data(void *data, int size, SMPEG_Info* info, int sdl_audio)5409</code></p></remarks>5410<param name="data">Raw chunck of data</param>5411<param name="size">Size of chunk</param>5412<param name="info">On return, if 'info' is not NULL,5413it will be filled with information about the MPEG object.</param>5414<param name="sdl_audio">5415The sdl_audio parameter indicates if SMPEG should5416initialize the SDL audio5417subsystem. If not, you will have to use the5418SMPEG_playaudio() function below5419to extract the decoded data.</param>5420<returns>This function returns a new SMPEG object.5421Use SMPEG_error() to find out whether or not there5422was a problem building the MPEG stream.</returns>5423</member>5424<member name="M:Tao.Sdl.Smpeg.SMPEG_new_rwops(System.IntPtr,Tao.Sdl.Smpeg.SMPEG_Info@,System.Int32)">5425<summary>5426Create a new SMPEG object from a generic SDL_RWops structure.5427</summary>5428<remarks>5429<p>Binds to a C-function call in smpeg.h5430<code>5431SMPEG* SMPEG_new_rwops(SDL_RWops *src, SMPEG_Info* info, int sdl_audio);5432</code></p></remarks>5433<param name="src"></param>5434<param name="info">On return, if 'info' is not NULL,5435it will be filled with information about the MPEG object.</param>5436<param name="sdl_audio">5437The sdl_audio parameter indicates if SMPEG should5438initialize the SDL audio5439subsystem. If not, you will have to use the5440SMPEG_playaudio() function below5441to extract the decoded data.</param>5442<returns>This function returns a new SMPEG object.5443Use SMPEG_error() to find out whether or not there5444was a problem building the MPEG stream.</returns>5445</member>5446<member name="M:Tao.Sdl.Smpeg.SMPEG_getinfo(System.IntPtr,Tao.Sdl.Smpeg.SMPEG_Info@)">5447<summary>5448Get current information about an SMPEG object5449</summary>5450<remarks>5451<p>Binds to a C-function call in smpeg.h5452<code>5453void SMPEG_getinfo( SMPEG* mpeg, SMPEG_Info* info )5454</code></p></remarks>5455<param name="mpeg">Handle to MPEG file.</param>5456<param name="info">On return, if 'info' is not NULL,5457it will be filled with information about the MPEG object.</param>5458</member>5459<member name="M:Tao.Sdl.Smpeg.SMPEG_enableaudio(System.IntPtr,System.Int32)">5460<summary>5461Enable or disable audio playback in MPEG stream5462</summary>5463<remarks>5464<p>Binds to a C-function call in smpeg.h5465<code>5466void SMPEG_enableaudio( SMPEG* mpeg, int enable )5467</code></p></remarks>5468<param name="mpeg">Handle to MPEG file.</param>5469<param name="enable"></param>5470</member>5471<member name="M:Tao.Sdl.Smpeg.SMPEG_enablevideo(System.IntPtr,System.Int32)">5472<summary>5473Enable or disable video playback in MPEG stream5474</summary>5475<remarks>5476<p>Binds to a C-function call in smpeg.h5477<code>5478void SMPEG_enablevideo( SMPEG* mpeg, int enable )5479</code></p></remarks>5480<param name="mpeg">Handle to MPEG file.</param>5481<param name="enable"></param>5482</member>5483<member name="M:Tao.Sdl.Smpeg.SMPEG_delete(System.IntPtr)">5484<summary>5485Delete an SMPEG object.5486</summary>5487<remarks>5488<p>Binds to a C-function call in smpeg.h5489<code>5490void SMPEG_delete( SMPEG* mpeg )5491</code></p></remarks>5492<param name="mpeg">Handle to MPEG file.</param>5493</member>5494<member name="M:Tao.Sdl.Smpeg.SMPEG_status(System.IntPtr)">5495<summary>5496Get the current status of an SMPEG object5497</summary>5498<remarks>5499<p>Binds to a C-function call in smpeg.h5500<code>5501SMPEGstatus SMPEG_status( SMPEG* mpeg )5502</code></p></remarks>5503<param name="mpeg">Handle to MPEG file.</param>5504<returns>5505SMPEG status: SMPEG_ERROR, SMPEG_PLAYING, SMPEG_STOPPED5506</returns>5507</member>5508<member name="M:Tao.Sdl.Smpeg.SMPEG_setvolume(System.IntPtr,System.Int32)">5509<summary>5510Set the audio volume of an MPEG stream, in the range 0-1005511</summary>5512<remarks>5513<p>Binds to a C-function call in smpeg.h5514<code>5515void SMPEG_setvolume( SMPEG* mpeg, int volume )5516</code></p></remarks>5517<param name="mpeg">Handle to MPEG file.</param>5518<param name="volume">Range from 0 - 100.</param>5519</member>5520<member name="M:Tao.Sdl.Smpeg.SMPEG_setdisplay(System.IntPtr,System.IntPtr,System.IntPtr,Tao.Sdl.Smpeg.SMPEG_DisplayCallback)">5521<summary>5522Set the destination surface for MPEG video playback5523</summary>5524<remarks>5525<p>Binds to a C-function call in smpeg.h5526<code>5527void SMPEG_setdisplay(SMPEG* mpeg, SDL_Surface* dst, SDL_mutex* surfLock, SMPEG_DisplayCallback callback);5528</code></p></remarks>5529<param name="mpeg">Handle to MPEG file.</param>5530<param name="dst"></param>5531<param name="surfLock">5532'surfLock' is a mutex used to synchronize access to 'dst',5533and can be NULL.5534</param>5535<param name="callback">5536'callback' is a function called when an area of 'dst' needs5537to be updated.5538If 'callback' is NULL, the default function (SDL_UpdateRect)5539will be used.5540</param>5541</member>5542<member name="M:Tao.Sdl.Smpeg.SMPEG_loop(System.IntPtr,System.Int32)">5543<summary>5544Set or clear looping play on an SMPEG object5545</summary>5546<remarks>5547<p>Binds to a C-function call in smpeg.h5548<code>5549void SMPEG_loop( SMPEG* mpeg, int repeat )5550</code></p></remarks>5551<param name="mpeg">Handle to MPEG file.</param>5552<param name="repeat"></param>5553</member>5554<member name="M:Tao.Sdl.Smpeg.SMPEG_scaleXY(System.IntPtr,System.Int32,System.Int32)">5555<summary>5556Scale pixel display on an SMPEG object5557</summary>5558<remarks>5559<p>Binds to a C-function call in smpeg.h5560<code>5561void SMPEG_scaleXY( SMPEG* mpeg, int width, int height )5562</code></p></remarks>5563<param name="mpeg">Handle to MPEG file.</param>5564<param name="width"></param>5565<param name="height"></param>5566</member>5567<member name="M:Tao.Sdl.Smpeg.SMPEG_scale(System.IntPtr,System.Int32)">5568<summary>5569Scale pixel display on an SMPEG object5570</summary>5571<remarks>5572<p>Binds to a C-function call in smpeg.h5573<code>5574void SMPEG_scale( SMPEG* mpeg, int scale )5575</code></p></remarks>5576<param name="mpeg">Handle to MPEG file.</param>5577<param name="scale"></param>5578</member>5579<member name="M:Tao.Sdl.Smpeg.SMPEG_double(System.IntPtr,System.Int32)">5580<summary>5581Scale pixel display on an SMPEG object5582</summary>5583<remarks>5584<p>Binds to a C-function call in smpeg.h5585<code>5586#define SMPEG_double(mpeg, on) \5587SMPEG_scale(mpeg, (on) ? 2 : 1)5588</code></p></remarks>5589<param name="mpeg">Handle to MPEG file.</param>5590<param name="on"></param>5591</member>5592<member name="M:Tao.Sdl.Smpeg.SMPEG_move(System.IntPtr,System.Int32,System.Int32)">5593<summary>5594Move the video display area within the destination surface5595</summary>5596<remarks>5597<p>Binds to a C-function call in smpeg.h5598<code>5599void SMPEG_move( SMPEG* mpeg, int x, int y )5600</code>5601</p>5602</remarks>5603<param name="mpeg">Handle to MPEG file.</param>5604<param name="x"></param>5605<param name="y"></param>5606</member>5607<member name="M:Tao.Sdl.Smpeg.SMPEG_setdisplayregion(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)">5608<summary>5609Set the region of the video to be shown5610</summary>5611<remarks>5612<p>Binds to a C-function call in smpeg.h5613<code>5614void SMPEG_setdisplayregion(SMPEG* mpeg, int x, int y, int w, int h)5615</code>5616</p>5617</remarks>5618<param name="mpeg">Handle to MPEG file.</param>5619<param name="h"></param>5620<param name="w"></param>5621<param name="x"></param>5622<param name="y"></param>5623</member>5624<member name="M:Tao.Sdl.Smpeg.SMPEG_play(System.IntPtr)">5625<summary>5626Play an SMPEG object5627</summary>5628<remarks>5629<p>Binds to a C-function call in smpeg.h5630<code>5631void SMPEG_play( SMPEG* mpeg )5632</code></p></remarks>5633<param name="mpeg">Handle to MPEG file.</param>5634</member>5635<member name="M:Tao.Sdl.Smpeg.SMPEG_pause(System.IntPtr)">5636<summary>5637Pause/Resume playback of an SMPEG object5638</summary>5639<remarks>5640<p>Binds to a C-function call in smpeg.h5641<code>5642void SMPEG_pause( IntPtr mpeg )5643</code></p></remarks>5644<param name="mpeg">Handle to MPEG file.</param>5645</member>5646<member name="M:Tao.Sdl.Smpeg.SMPEG_stop(System.IntPtr)">5647<summary>5648Stop playback of an SMPEG object5649</summary>5650<remarks>5651<p>Binds to a C-function call in smpeg.h5652<code>5653void SMPEG_stop( SMPEG* mpeg )5654</code></p></remarks>5655<param name="mpeg">Handle to MPEG file.</param>5656</member>5657<member name="M:Tao.Sdl.Smpeg.SMPEG_rewind(System.IntPtr)">5658<summary>5659Rewind the play position of an SMPEG object5660to the beginning of the MPEG5661</summary>5662<remarks>5663<p>Binds to a C-function call in smpeg.h5664<code>5665void SMPEG_rewind( SMPEG* mpeg )5666</code></p></remarks>5667<param name="mpeg">Handle to MPEG file.</param>5668</member>5669<member name="M:Tao.Sdl.Smpeg.SMPEG_seek(System.IntPtr,System.Int32)">5670<summary>5671Seek 'bytes' bytes in the MPEG stream5672</summary>5673<remarks>5674<p>Binds to a C-function call in smpeg.h5675<code>5676void SMPEG_seek( SMPEG* mpeg, int bytes)5677</code></p></remarks>5678<param name="mpeg">Handle to MPEG file.</param>5679<param name="bytes">Bytes in the MPEG stream.</param>5680</member>5681<member name="M:Tao.Sdl.Smpeg.SMPEG_skip(System.IntPtr,System.Single)">5682<summary>5683Skip 'seconds' seconds in the MPEG stream5684</summary>5685<remarks>5686<p>Binds to a C-function call in smpeg.h5687<code>5688void SMPEG_skip( SMPEG* mpeg, float seconds );5689</code></p></remarks>5690<param name="mpeg">Handle to MPEG file.</param>5691<param name="seconds">Seconds in the MPEG stream.</param>5692</member>5693<member name="M:Tao.Sdl.Smpeg.SMPEG_renderFrame(System.IntPtr,System.Int32)">5694<summary>5695Render a particular frame in the MPEG video5696</summary>5697<remarks>5698API CHANGE: This function no longer takes a target surface and position.5699Use SMPEG_setdisplay() and SMPEG_move() to set this information.5700<p>Binds to a C-function call in smpeg.h5701<code>5702void SMPEG_renderFrame( SMPEG* mpeg, int framenum )5703</code>5704</p>5705</remarks>5706<param name="mpeg">Handle to MPEG file.</param>5707<param name="framenum">Frame number</param>5708</member>5709<member name="M:Tao.Sdl.Smpeg.SMPEG_renderFinal(System.IntPtr,System.IntPtr,System.Int32,System.Int32)">5710<summary>5711Render the last frame of an MPEG video5712</summary>5713<remarks>5714<p>Binds to a C-function call in smpeg.h5715<code>5716void SMPEG_renderFinal( SMPEG* mpeg, SDL_Surface* dst, int x, int y )5717</code>5718</p>5719</remarks>5720<param name="mpeg">Handle to MPEG file.</param>5721<param name="dst">SDL_Surface pointer</param>5722<param name="x"></param>5723<param name="y"></param>5724</member>5725<member name="M:Tao.Sdl.Smpeg.SMPEG_filter(System.IntPtr,System.IntPtr)">5726<summary>5727Set video filter5728</summary>5729<remarks>5730<p>Binds to a C-function call in smpeg.h5731<code>5732SMPEG_Filter * SMPEG_filter( SMPEG* mpeg, SMPEG_Filter * filter )5733</code>5734</p>5735</remarks>5736<param name="mpeg">Handle to MPEG file.</param>5737<param name="filter">IntPtr to SPEG_Filter</param>5738</member>5739<member name="M:Tao.Sdl.Smpeg.SMPEG_error(System.IntPtr)">5740<summary>5741SMPEG errors messages.5742</summary>5743<remarks>5744<p>Binds to a C-function call in smpeg.h5745<code>5746char *SMPEG_error( SMPEG* mpeg );5747</code></p></remarks>5748<param name="mpeg">MPEG file pointer</param>5749<returns>5750Return NULL if there is no error in the MPEG stream,5751or an error message5752if there was a fatal error in the MPEG stream for the SMPEG object..5753</returns>5754</member>5755<member name="M:Tao.Sdl.Smpeg.SMPEG_playAudio(System.IntPtr,System.Byte[],System.Int32)">5756<summary>5757Exported callback function for audio playback.5758</summary>5759<remarks>5760The function takes a buffer and the amount of data to fill, and returns5761the amount of data in bytes that was actually written. This will be the5762amount requested unless the MPEG audio has finished.5763<p>Binds to a C-function call in smpeg.h5764<code>5765int SMPEG_playAudio( SMPEG *mpeg, Uint8 *stream, int len )5766</code>5767</p>5768</remarks>5769<param name="mpeg">Handle to MPEG file.</param>5770<param name="stream">Bytestream of data</param>5771<param name="len">Amount of data to fill</param>5772<returns>Amount of data in bytes that was actually written</returns>5773</member>5774<member name="M:Tao.Sdl.Smpeg.SMPEG_playAudioSDL(System.IntPtr,System.Byte[],System.Int32)">5775<summary>5776Wrapper for SMPEG_playAudio() that can be passed to SDL and SDL_mixer.5777Exported callback function for audio playback.5778</summary>5779<remarks>5780The function takes a buffer and the amount of data to fill, and returns5781the amount of data in bytes that was actually written. This will be the5782amount requested unless the MPEG audio has finished.5783<p>Binds to a C-function call in smpeg.h5784<code>5785void SMPEG_playAudioSDL( void *mpeg, Uint8 *stream, int len )5786</code>5787</p>5788</remarks>5789<param name="mpeg">MPEG object.</param>5790<param name="stream">Bytestream of data</param>5791<param name="len">Amount of data to fill</param>5792</member>5793<member name="M:Tao.Sdl.Smpeg.SMPEG_wantedSpec(System.IntPtr,System.IntPtr)">5794<summary>5795Get the best SDL audio spec for the audio stream5796</summary>5797<remarks>5798<p>Binds to a C-function call in smpeg.h5799<code>5800int SMPEG_wantedSpec( SMPEG *mpeg, SDL_AudioSpec *wanted )5801</code>5802</p>5803</remarks>5804<param name="mpeg">MPEG object.</param>5805<param name="wanted">SDL_AudioSpec</param>5806<returns></returns>5807</member>5808<member name="M:Tao.Sdl.Smpeg.SMPEG_actualSpec(System.IntPtr,Tao.Sdl.Sdl.SDL_AudioSpec@)">5809<summary>5810Inform SMPEG of the actual SDL audio spec used for sound playback5811</summary>5812<remarks>5813<p>Binds to a C-function call in smpeg.h5814<code>5815void SMPEG_actualSpec( SMPEG *mpeg, SDL_AudioSpec *spec )5816</code>5817</p>5818</remarks>5819<param name="mpeg">MPEG object.</param>5820<param name="spec">SDL_AudioSpec</param>5821<returns></returns>5822</member>5823<member name="T:Tao.Sdl.Smpeg.SMPEG_FilterInfo">5824<summary>5825Filter info from SMPEG5826</summary>5827<remarks>5828<p>Struct in MPEGfilter.h5829<code>5830typedef struct SMPEG_FilterInfo {5831Uint16* yuv_mb_square_error;5832Uint16* yuv_pixel_square_error;5833}5834</code>5835</p>5836</remarks>5837</member>5838<member name="F:Tao.Sdl.Smpeg.SMPEG_FilterInfo.yuv_mb_square_error">5839<summary>58405841</summary>5842</member>5843<member name="F:Tao.Sdl.Smpeg.SMPEG_FilterInfo.yuv_pixel_square_error">5844<summary>58455846</summary>5847</member>5848<member name="T:Tao.Sdl.Smpeg.SMPEG_Filter">5849<summary>5850The filter definition itself5851</summary>5852<remarks>5853<p>Struct in MPEGfilter.h5854<code>5855typedef struct SMPEG_Filter {5856Uint32 flags;5857void * data;5858SMPEG_FilterCallback callback;5859SMPEG_FilterDestroy destroy;5860}5861</code></p></remarks>5862</member>5863<member name="F:Tao.Sdl.Smpeg.SMPEG_Filter.flags">5864<summary>58655866</summary>5867</member>5868<member name="F:Tao.Sdl.Smpeg.SMPEG_Filter.data">5869<summary>58705871</summary>5872</member>5873<member name="F:Tao.Sdl.Smpeg.SMPEG_Filter.callback">5874<summary>58755876</summary>5877</member>5878<member name="F:Tao.Sdl.Smpeg.SMPEG_Filter.destroy">5879<summary>58805881</summary>5882</member>5883<member name="T:Tao.Sdl.Smpeg.SMPEG_version">5884<summary>5885Structure to hold version number of the SMPEG library5886</summary>5887</member>5888<member name="F:Tao.Sdl.Smpeg.SMPEG_version.major">5889<summary>5890Major version5891</summary>5892</member>5893<member name="F:Tao.Sdl.Smpeg.SMPEG_version.minor">5894<summary>5895Minor version5896</summary>5897</member>5898<member name="F:Tao.Sdl.Smpeg.SMPEG_version.patch">5899<summary>5900Patch version5901</summary>5902</member>5903<member name="M:Tao.Sdl.Smpeg.SMPEG_version.ToString">5904<summary>59055906</summary>5907<returns></returns>5908</member>5909<member name="T:Tao.Sdl.Smpeg.SMPEG_Info">5910<summary>5911Used to get information about the SMPEG object5912</summary>5913<remarks>5914<p>5915<code>5916typedef struct _SMPEG_Info {5917int has_audio;5918int has_video;5919int width;5920int height;5921int current_frame;5922double current_fps;5923char audio_string[80];5924int audio_current_frame;5925Uint32 current_offset;5926Uint32 total_size;5927double current_time;5928double total_time;5929} SMPEG_Info;5930</code></p></remarks>5931</member>5932<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.has_audio">5933<summary>59345935</summary>5936</member>5937<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.has_video">5938<summary>59395940</summary>5941</member>5942<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.width">5943<summary>5944Width of movie file5945</summary>5946</member>5947<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.height">5948<summary>5949Height of movie file5950</summary>5951</member>5952<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.current_frame">5953<summary>59545955</summary>5956</member>5957<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.current_fps">5958<summary>59595960</summary>5961</member>5962<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.audio_string">5963<summary>59645965</summary>5966</member>5967<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.audio_current_frame">5968<summary>59695970</summary>5971</member>5972<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.current_offset">5973<summary>59745975</summary>5976</member>5977<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.total_size">5978<summary>5979Movie file size in bytes5980</summary>5981</member>5982<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.current_time">5983<summary>59845985</summary>5986</member>5987<member name="F:Tao.Sdl.Smpeg.SMPEG_Info.total_time">5988<summary>5989Length of movie file in seconds.5990</summary>5991</member>5992<member name="T:Tao.Sdl.Smpeg.SMPEG_FilterCallback">5993<summary>5994Callback function for the filter5995</summary>5996<remarks>5997<p>5998<code>5999typedef void (* SMPEG_FilterCallback)( SDL_Overlay * dest, SDL_Overlay * source, SDL_Rect * region, SMPEG_FilterInfo * filter_info, void * data );6000</code></p></remarks>6001</member>6002<member name="T:Tao.Sdl.Smpeg.SMPEG_FilterDestroy">6003<summary>6004Callback function for the filter6005</summary>6006<remarks>6007<p>Binds to a callback function in MPEGfilter.h6008<code>6009typedef void (* SMPEG_FilterDestroy)( struct SMPEG_Filter * filter )6010</code></p></remarks>6011</member>6012<member name="T:Tao.Sdl.Smpeg.SMPEG_DisplayCallback">6013<summary>6014Matches the declaration of SDL_UpdateRect()6015</summary>6016<remarks>6017<p>Binds to a callback function in smpeg.h6018<code>6019typedef void(*SMPEG_DisplayCallback)(SDL_Surface* dst, int x, int y, unsigned int w, unsigned int h);6020</code>6021</p>6022</remarks>6023</member>6024<member name="T:Tao.Sdl.SdlMixer">6025<summary>6026<p>SdlMixer is a simple multi-channel audio mixer.6027It supports 8 channels of 16 bit stereo audio, plus a6028single channel of music, mixed by the popular MikMod MOD,6029Timidity MIDI and SMPEG MP3 libraries.</p>6030<p>6031The mixer can currently load Microsoft WAVE files and6032Creative Labs VOC files as audio samples, and can load MIDI6033files via Timidity and the following music formats via6034MikMod: .MOD .S3M .IT .XM. It can load Ogg Vorbis streams6035as music if built with the Ogg Vorbis libraries, and6036finally it can load MP3 music using the SMPEG library.</p>6037<p>6038The process of mixing MIDI files to wave output is very CPU6039intensive, so if playing regular WAVE files sound great, but6040playing MIDI files sound choppy, try using 8-bit audio,6041mono audio, or lower frequencies.</p>6042</summary>6043<remarks>6044This assumes you have gotten SDL_mixer and installed it6045on your system. SDL_mixer has an INSTALL document in the6046source distribution to help you get it compiled and installed.6047SDL_mixer supports playing music and sound samples from6048the following formats:6049<code>6050- WAVE/RIFF (.wav)6051- AIFF (.aiff)6052- VOC (.voc)6053- MOD (.mod .xm .s3m .669 .it .med and more) using included mikmod6054- MIDI (.mid) using timidity or native midi hardware6055- OggVorbis (.ogg) requiring ogg/vorbis libraries on system6056- MP3 (.mp3) requiring SMPEG library on system6057- also any command-line player, which is not mixed by SDL_mixer...6058</code>6059<p>6060When using SDL_mixer functions you need to avoid the6061following functions from SDL:</p>6062<p><code>6063SDL_OpenAudio6064Use Mix_OpenAudio instead.6065SDL_CloseAudio6066Use Mix_CloseAudio instead.6067SDL_PauseAudio6068Use Mix_Pause(-1) and Mix_PauseMusic instead, to pause.6069Use Mix_Resume(-1) and Mix_ResumeMusic instead, to unpause.6070SDL_LockAudio6071This is just not needed since SDL_mixer handles this for you.6072Using it may cause problems as well.6073SDL_UnlockAudio6074This is just not needed since SDL_mixer handles this for you.6075Using it may cause problems as well. </code></p>6076<p>You may call the following functions freely:</p>6077<code>6078SDL_AudioDriverName6079This will still work as usual.6080SDL_GetAudioStatus6081This will still work, though it will likely return6082SDL_AUDIO_PLAYING even though SDL_mixer is just playing silence.6083It is also a BAD idea to call SDL_mixer and SDL audio6084functions from a callback. Callbacks include Effects6085functions and other SDL_mixer audio hooks. </code>6086</remarks>6087</member>6088<member name="F:Tao.Sdl.SdlMixer.SDL_MIXER_NATIVE_LIBRARY">6089<summary>6090Specifies SdlMixer native library archive.6091</summary>6092<remarks>6093Specifies SDL_mixer.dll everywhere; will be mapped via .config for mono.6094</remarks>6095</member>6096<member name="F:Tao.Sdl.SdlMixer.CALLING_CONVENTION">6097<summary>6098Specifies the calling convention.6099</summary>6100<remarks>6101Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>6102for Windows and Linux.6103</remarks>6104</member>6105<member name="F:Tao.Sdl.SdlMixer.MIX_MAJOR_VERSION">6106<summary>6107Major Version6108</summary>6109</member>6110<member name="F:Tao.Sdl.SdlMixer.MIX_MINOR_VERSION">6111<summary>6112Minor Version6113</summary>6114</member>6115<member name="F:Tao.Sdl.SdlMixer.MIX_PATCHLEVEL">6116<summary>6117Patch Version6118</summary>6119</member>6120<member name="F:Tao.Sdl.SdlMixer.MIX_CHANNELS">6121<summary>6122The default mixer has this many simultaneous mixing6123channels after the first call to Mix_OpenAudio.6124</summary>6125</member>6126<member name="F:Tao.Sdl.SdlMixer.MIX_DEFAULT_FREQUENCY">6127<summary>6128Good default sample rate in Hz (samples per second)6129for PC sound cards.6130</summary>6131</member>6132<member name="F:Tao.Sdl.SdlMixer.MIX_DEFAULT_CHANNELS">6133<summary>6134Stereo sound is a good default.6135</summary>6136</member>6137<member name="F:Tao.Sdl.SdlMixer.MIX_MAX_VOLUME">6138<summary>6139Maximum value for any volume setting.6140</summary>6141<remarks>6142This is currently the same as <see cref="F:Tao.Sdl.Sdl.SDL_MIX_MAXVOLUME"/>.6143</remarks>6144</member>6145<member name="F:Tao.Sdl.SdlMixer.MIX_CHANNEL_POST">6146<summary>6147This is the channel number used for post processing effects.6148</summary>6149</member>6150<member name="F:Tao.Sdl.SdlMixer.MIX_EFFECTSMAXSPEED">6151<summary>6152A convience definition for the string name of the6153environment variable to define when you desire6154the internal effects to sacrifice quality and/or6155RAM for speed. The environment variable must be6156set (else nonexisting) before Mix_OpenAudio is6157called for the setting to take effect.6158</summary>6159</member>6160<member name="F:Tao.Sdl.SdlMixer.MIX_NO_FADING">6161<summary>61626163</summary>6164</member>6165<member name="F:Tao.Sdl.SdlMixer.MIX_FADING_OUT">6166<summary>61676168</summary>6169</member>6170<member name="F:Tao.Sdl.SdlMixer.MIX_FADING_IN">6171<summary>61726173</summary>6174</member>6175<member name="F:Tao.Sdl.SdlMixer.MUS_NONE">6176<summary>61776178</summary>6179</member>6180<member name="F:Tao.Sdl.SdlMixer.MUS_CMD">6181<summary>61826183</summary>6184</member>6185<member name="F:Tao.Sdl.SdlMixer.MUS_WAV">6186<summary>61876188</summary>6189</member>6190<member name="F:Tao.Sdl.SdlMixer.MUS_MOD">6191<summary>61926193</summary>6194</member>6195<member name="F:Tao.Sdl.SdlMixer.MUS_MID">6196<summary>61976198</summary>6199</member>6200<member name="F:Tao.Sdl.SdlMixer.MUS_OGG">6201<summary>62026203</summary>6204</member>6205<member name="F:Tao.Sdl.SdlMixer.MUS_MP3">6206<summary>62076208</summary>6209</member>6210<member name="M:Tao.Sdl.SdlMixer.MIX_VERSION">6211<summary>6212This method can be used to fill a version structure with the compile-time6213version of the SDL_mixer library.6214</summary>6215<returns>6216This function returns a <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct containing the6217compiled version number6218</returns>6219<remarks>6220<p>6221Binds to C-function call in SDL_mixer.h:6222<code>#define SDL_MIX_VERSION(X)6223{6224(X)->major = SDL_MIX_MAJOR_VERSION;6225(X)->minor = SDL_MIX_MINOR_VERSION;6226(X)->patch = SDL_MIX_PATCHLEVEL;6227}</code>6228</p>6229</remarks>6230</member>6231<member name="M:Tao.Sdl.SdlMixer.Mix_Linked_Version">6232<summary>6233Using this you can compare the runtime version to the6234version that you compiled with.6235</summary>6236<returns>6237This function gets the version of the dynamically6238linked SDL_mixer library in an <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct.6239</returns>6240<remarks>6241<p>6242Binds to C-function call in SDL_mixer.h:6243<code>const SDL_version * Mix_Linked_Version(void)</code>6244</p>6245</remarks>6246</member>6247<member name="M:Tao.Sdl.SdlMixer.Mix_OpenAudio(System.Int32,System.Int16,System.Int32,System.Int32)">6248<summary>6249Open the mixer with a certain audio format6250</summary>6251<remarks>6252Initialize the mixer API.6253<p>6254This must be called before using other functions in this6255library.6256SDL must be initialized with SDL_INIT_AUDIO before this call.6257frequency would be 44100 for 44.1KHz, which is CD audio rate.6258Most games use 22050, because 44100 requires too much CPU power6259on older computers. chunksize is the size of each mixed sample.6260The smaller this is the more your hooks will be called.6261If make this too small on a slow system, sound may skip.6262If made to large, sound effects will lag behind the action more.6263You want a happy medium for your target computer.6264You also may make this 4096, or larger, if you are6265just playing music. MIX_CHANNELS(8) mixing channels6266will be allocated by default. You may call this function6267multiple times, however you will have to call Mix_CloseAudio6268just as many times for the device to actually close.6269The format will not changed on subsequent calls.6270So you will have to close all the way before6271trying to open with different format parameters.</p>62726273<p>format is based on SDL audio support, see SDL_audio.h. Here are the values listed there:</p>62746275<code>6276AUDIO_U86277Unsigned 8-bit samples62786279AUDIO_S86280Signed 8-bit samples62816282AUDIO_U16LSB6283Unsigned 16-bit samples, in little-endian byte order62846285AUDIO_S16LSB6286Signed 16-bit samples, in little-endian byte order62876288AUDIO_U16MSB6289Unsigned 16-bit samples, in big-endian byte order62906291AUDIO_S16MSB6292Signed 16-bit samples, in big-endian byte order62936294AUDIO_U166295same as AUDIO_U16LSB (for backwards compatability probably)62966297AUDIO_S166298same as AUDIO_S16LSB (for backwards compatability probably)62996300AUDIO_U16SYS6301Unsigned 16-bit samples, in system byte order63026303AUDIO_S16SYS6304Signed 16-bit samples, in system byte order6305</code>63066307<p>MIX_DEFAULT_FORMAT is the same as AUDIO_S16SYS.</p>6308<p>Binds to C-funtion in SDL_mixer.h6309<code>6310int Mix_OpenAudio(int frequency, Uint16 format, int channels, int chunksize)6311</code></p>6312</remarks>6313<param name="frequency">6314Output sampling frequency in samples per second (Hz).6315you might use MIX_DEFAULT_FREQUENCY(22050)6316since that is a good value for most games.6317</param>6318<param name="format">6319Output sample format.6320</param>6321<param name="channels">6322Number of sound channels in output.6323Set to 2 for stereo, 1 for mono.6324This has nothing to do with mixing channels.6325</param>6326<param name="chunksize">6327Bytes used per output sample.6328</param>6329<returns>63300 on success, -1 on errors6331</returns>6332<example>6333<code>6334// start SDL with audio support6335if(SDL_Init(SDL_INIT_AUDIO)==-1)6336{6337printf("SDL_Init: %s\n", SDL_GetError());6338exit(1);6339}6340// open 44.1KHz, signed 16bit, system byte order,6341// stereo audio, using 1024 byte chunks6342if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1)6343{6344printf("Mix_OpenAudio: %s\n", Mix_GetError());6345exit(2);6346}6347</code>6348</example>6349<seealso cref="M:Tao.Sdl.SdlMixer.Mix_CloseAudio"/>6350<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuerySpec(System.Int32@,System.Int16@,System.Int32@)"/>6351<seealso cref="M:Tao.Sdl.SdlMixer.Mix_AllocateChannels(System.Int32)"/>6352</member>6353<member name="M:Tao.Sdl.SdlMixer.Mix_AllocateChannels(System.Int32)">6354<summary>6355Dynamically change the number of channels managed by the mixer.6356If decreasing the number of channels, the upper channels are6357stopped.6358<p>This function returns the new number of allocated channels.</p>6359</summary>6360<remarks>6361Set the number of channels being mixed.6362This can be called multiple times,6363even with sounds playing. If numchans is less6364than the current number of channels, then the6365higher channels will be stopped, freed, and6366therefore not mixed any longer. It's6367probably not a good idea to change the6368size 1000 times a second though.6369If any channels are deallocated,6370any callback set by Mix_ChannelFinished6371will be called when each channel6372is halted to be freed. Note: passing6373in zero WILL free all mixing channels,6374however music will still play.6375</remarks>6376<param name="numchans">6377Number of channels to allocate for mixing.6378A negative number will not do anything, it will tell6379you how many channels are currently allocated.6380</param>6381<returns>6382The number of channels allocated.6383Never fails...but a high number of channels6384can segfault if you run out of memory. We're talking REALLY high!6385</returns>6386<example>6387<code>6388// allocate 16 mixing channels6389Mix_AllocateChannels(16);6390</code></example>6391<seealso cref="M:Tao.Sdl.SdlMixer.Mix_OpenAudio(System.Int32,System.Int16,System.Int32,System.Int32)"/>6392</member>6393<member name="M:Tao.Sdl.SdlMixer.Mix_QuerySpec(System.Int32@,System.Int16@,System.Int32@)">6394<summary>6395Get output format.6396</summary>6397<remarks>6398Get the actual audio format in use by the opened6399audio device.6400This may or may not match the parameters you6401passed to Mix_OpenAudio.6402<p>Binds to C-function in SDL_mixer.h6403<code>int Mix_QuerySpec(int *frequency, Uint16 *format, int *channels)6404</code></p>6405</remarks>6406<param name="channels">6407A pointer to an int where the6408number of audio channels will be stored.64092 will mean stereo, 1 will mean mono.6410</param>6411<param name="format">6412A pointer to a short where the output format actually6413being used by the audio device will be stored.6414</param>6415<param name="frequency">6416A pointer to an int6417where the frequency actually used by the opened6418audio device will be stored.6419</param>6420<returns>64210 on error. If the device was open the number of times6422it was opened will be returned. The values of the6423arguments variables are not set on an error.6424</returns>6425<example>6426<code>6427// get and print the audio format in use6428int numtimesopened, frequency, channels;6429Uint16 format;6430numtimesopened=Mix_QuerySpec(&frequency, &format, &channels);6431if(!numtimesopened)6432{6433printf("Mix_QuerySpec: %s\n",Mix_GetError());6434}6435else6436{6437char *format_str="Unknown";6438switch(format)6439{6440case AUDIO_U8: format_str="U8"; break;6441case AUDIO_S8: format_str="S8"; break;6442case AUDIO_U16LSB: format_str="U16LSB"; break;6443case AUDIO_S16LSB: format_str="S16LSB"; break;6444case AUDIO_U16MSB: format_str="U16MSB"; break;6445case AUDIO_S16MSB: format_str="S16MSB"; break;6446}6447printf("opened=%d times frequency=%dHz format=%s channels=%d",6448numtimesopened, frequency, format, channels);6449}6450</code>6451</example>6452<seealso cref="M:Tao.Sdl.SdlMixer.Mix_OpenAudio(System.Int32,System.Int16,System.Int32,System.Int32)"/>6453</member>6454<member name="M:Tao.Sdl.SdlMixer.Mix_LoadWAV_RW(System.IntPtr,System.Int32)">6455<summary>6456Load a wave file or a music (.mod .s3m .it .xm) file6457</summary>6458<remarks>6459Load src for use as a sample.6460This can load WAVE, AIFF, RIFF, OGG, and VOC formats.6461Using SDL_RWops is not covered here, but they enable6462you to load from almost any source.6463<p>Binds to C-function in SDL_mixer.h6464<code>Mix_Chunk *Mix_LoadWAV_RW(SDL_RWops *src, int freesrc)6465</code></p>6466</remarks>6467<param name="src">6468The source SDL_RWops as a pointer.6469The sample is loaded from this.6470</param>6471<param name="freesrc">6472A non-zero value mean is will automatically6473close/free the src for you.6474</param>6475<returns>6476a pointer to the sample as a Mix_Chunk.6477NULL is returned on errors.6478</returns>6479<example>6480<code>6481// load sample.wav in to sample6482Mix_Chunk *sample;6483sample=Mix_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1);6484if(!sample)6485{6486printf("Mix_LoadWAV_RW: %s\n", Mix_GetError());6487// handle error6488}6489</code></example>6490<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)"/>6491<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_WAV(System.IntPtr)"/>6492<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)"/>6493</member>6494<member name="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)">6495<summary>6496Load WAV from a file.6497</summary>6498<param name="file">6499File name to load sample from.6500</param>6501<remarks>6502Load file for use as a sample.6503This is actually Mix_LoadWAV_RW(SDL_RWFromFile(file, "rb"), 1).6504This can load WAVE, AIFF, RIFF, OGG, and VOC files.6505<p>Binds to C-function in SDL_mixer.h6506<code>Mix_Chunk *Mix_LoadWAV(char *file)6507</code></p>6508</remarks>6509<returns>6510a pointer to the sample as a Mix_Chunk.6511NULL is returned on errors.6512</returns>6513<example>6514<code>6515// load sample.wav in to sample6516Mix_Chunk *sample;6517sample=Mix_LoadWAV("sample.wav");6518if(!sample)6519{6520printf("Mix_LoadWAV: %s\n", Mix_GetError());6521// handle error6522}6523</code></example>6524<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV_RW(System.IntPtr,System.Int32)"/>6525<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_WAV(System.IntPtr)"/>6526<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)"/>6527</member>6528<member name="M:Tao.Sdl.SdlMixer.Mix_LoadMUS(System.String)">6529<summary>6530Load a music file into a Mix_Music6531</summary>6532<param name="file">Name of music file to use.6533</param>6534<returns>6535A pointer to a Mix_Music. NULL is returned on errors.6536</returns>6537<remarks>6538Load music file to use. This can load WAVE, MOD, MIDI, OGG, MP3,6539and any file that you use a command to play with.6540<p>If you are using an external command to play the music,6541you must call Mix_SetMusicCMD before this, otherwise the6542internal players will be used. Alternatively, if you have6543set an external command up and don't want to use it, you6544must call Mix_SetMusicCMD(NULL) to use the built-in players6545again.</p>6546<p>Binds to C-function in SDL_mixer.h6547<code>Mix_Music *Mix_LoadMUS(const char *file)6548</code></p>6549</remarks>6550<example>6551<code>6552// load the MP3 file "music.mp3" to play as music6553Mix_Music *music;6554music=Mix_LoadMUS("music.mp3");6555if(!music)6556{6557printf("Mix_LoadMUS(\"music.mp3\"): %s\n", Mix_GetError());6558// this might be a critical error...6559}6560</code></example>6561<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicCMD(System.String)"/>6562<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>6563<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusic(System.IntPtr,System.Int32,System.Int32)"/>6564<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusicPos(System.IntPtr,System.Int32,System.Int32,System.Double)"/>6565</member>6566<member name="M:Tao.Sdl.SdlMixer.Mix_LoadMUS_RW(System.IntPtr)">6567<summary>6568Load a music file from an SDL_RWop object (Ogg and MikMod specific currently)6569</summary>6570<remarks>6571<p>Binds to C-function in SDL_mixer.h6572<code>Mix_Music *Mix_LoadMUS_RW(SDL_RWops *rw)6573</code></p>6574</remarks>6575</member>6576<member name="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_WAV(System.IntPtr)">6577<summary>6578Load a wave file of the mixer format from a memory buffer6579</summary>6580<remarks>6581Load mem as a WAVE/RIFF file into a new sample.6582The WAVE in mem must be already in the output format.6583It would be better to use Mix_LoadWAV_RW if you aren't sure.6584Note: This function does very little checking.6585If the format mismatches the output format, or6586if the buffer is not a WAVE, it will not return an error.6587This is probably a dangerous function to use.6588<p>Binds to C-function in SDL_mixer.h6589<code>Mix_Chunk *Mix_QuickLoad_WAV(Uint8 *mem)6590</code>6591</p>6592</remarks>6593<param name="mem">6594Memory buffer containing a WAVE file in output format.6595</param>6596<returns>6597a pointer to the sample as a Mix_Chunk.6598NULL is returned on errors.6599</returns>6600<example>6601<code>6602// quick-load a wave from memory6603// Uint8 *wave; // I assume you have the wave loaded raw,6604// or compiled in the program...6605Mix_Chunk *wave_chunk;6606if(!(wave_chunk=Mix_QuickLoad_WAV(wave)))6607{6608printf("Mix_QuickLoad_WAV: %s\n", Mix_GetError());6609// handle error6610}6611</code></example>6612<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)"/>6613<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_RAW(System.IntPtr,System.Int32)"/>6614<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)"/>6615</member>6616<member name="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_RAW(System.IntPtr,System.Int32)">6617<summary>6618Load raw audio data of the mixer format from a memory buffer6619</summary>6620<remarks>6621Load mem as a raw sample. The data in mem must be already in6622the output format. If you aren't sure what you are doing,6623this is not a good function for you!6624<p>Note: This function does very little checking.6625If the format mismatches the output format it6626will not return an error. This is probably a6627dangerous function to use.</p>6628<p>Binds to C-function in SDL_mixer.h6629<code>Mix_Chunk *Mix_QuickLoad_RAW(Uint8 *mem)6630</code>6631</p>6632</remarks>6633<param name="len"></param>6634<param name="mem">6635Memory buffer containing a WAVE file in output format.6636Load mem as a raw sample.6637The data in mem must be already in the output format.6638If you aren't sure what you are doing,6639this is not a good function for you!6640</param>6641<returns>6642a pointer to the sample as a Mix_Chunk.6643NULL is returned on errors, such as when out of memory.6644</returns>6645<example>6646<code>6647// quick-load a raw sample from memory6648// Uint8 *raw; // I assume you have the raw data here,6649// or compiled in the program...6650Mix_Chunk *raw_chunk;6651if(!(raw_chunk=Mix_QuickLoad_RAW(raw)))6652{6653printf("Mix_QuickLoad_RAW: %s\n", Mix_GetError());6654// handle error6655}6656</code></example>6657<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)"/>6658<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_WAV(System.IntPtr)"/>6659<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)"/>6660</member>6661<member name="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)">6662<summary>6663Free an audio chunk previously loaded6664</summary>6665<remarks>6666Free the memory used in chunk, and free chunk itself as well.6667Do not use chunk after this without loading a new sample to6668it. Note: It's a bad idea to free a chunk that is still6669being played...6670<p>Binds to C-function in SDL_mixer.h6671<code>void Mix_FreeChunk(Mix_Chunk *chunk)6672</code>6673</p>6674</remarks>6675<param name="chunk">6676Pointer to the Mix_Chunk to free.6677</param>6678<example>6679<code>6680// free the sample6681// Mix_Chunk *sample;6682Mix_FreeChunk(sample);6683sample=NULL; // to be safe...6684</code></example>6685<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)"/>6686<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuickLoad_WAV(System.IntPtr)"/>6687<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV_RW(System.IntPtr,System.Int32)"/>6688</member>6689<member name="M:Tao.Sdl.SdlMixer.Mix_FreeMusic(System.IntPtr)">6690<summary>6691Free a Mix_Music6692</summary>6693<remarks>6694Free the loaded music. If music is playing it will be halted.6695If music is fading out, then this function will wait (blocking)6696until the fade out is complete.6697<p>Binds to C-function in SDL_mixer.h6698<code>void Mix_FreeMusic(Mix_Music *music)6699</code>6700</p>6701</remarks>6702<example>6703<code>6704// free music6705Mix_Music *music;6706Mix_FreeMusic(music);6707music=NULL; // so we know we freed it...6708</code>6709</example>6710<param name="music">Pointer to Mix_Music to free.</param>6711<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadMUS(System.String)"/>6712</member>6713<member name="M:Tao.Sdl.SdlMixer.Mix_GetMusicType(System.IntPtr)">6714<summary>6715Find out the music format of a mixer music,6716or the currently playing music, if 'music' is NULL.6717</summary>6718<remarks>6719Tells you the file format encoding of the music.6720This may be handy when used with Mix_SetMusicPosition,6721and other music functions that vary based on the type6722of music being played. If you want to know the type of6723music currently being played, pass in NULL to music.6724<p>Binds to C-function in SDL_mixer.h6725<code>Mix_MusicType Mix_GetMusicType(const Mix_Music *music)6726</code>6727</p>6728</remarks>6729<param name="music">The music to get the type of.6730NULL will get the currently playing music type.6731</param>6732<returns>The type of music or if music is NULL then6733the currently playing music type, otherwise MUS_NONE6734if no music is playing.</returns>6735<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetPosition(System.Int32,System.Int16,System.Byte)"/>6736<example>6737<code>6738// print the type of music currently playing6739switch(Mix_GetMusicType(NULL))6740{6741case MUS_NONE:6742MUS_CMD:6743printf("Command based music is playing.\n");6744break;6745MUS_WAV:6746printf("WAVE/RIFF music is playing.\n");6747break;6748MUS_MOD:6749printf("MOD music is playing.\n");6750break;6751MUS_MID:6752printf("MIDI music is playing.\n");6753break;6754MUS_OGG:6755printf("OGG music is playing.\n");6756break;6757MUS_MP3:6758printf("MP3 music is playing.\n");6759break;6760default:6761printf("Unknown music is playing.\n");6762break;6763}6764</code></example>6765<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetPosition(System.Int32,System.Int16,System.Byte)"/>6766</member>6767<member name="M:Tao.Sdl.SdlMixer.Mix_SetPostMix(Tao.Sdl.SdlMixer.MixFunctionDelegate,System.IntPtr)">6768<summary>6769Hook in a postmix processor6770</summary>6771<remarks>6772Hook a processor function mix_func to the postmix stream for post6773processing effects. You may just be reading the data and6774displaying it, or you may be altering the stream to add an6775echo. Most processors also have state data that they allocate6776as they are in use, this would be stored in the arg pointer6777data space. This processor is never really finished, until6778the audio device is closed, or you pass NULL as the mix_func.6779<p>There can only be one postmix function used at a time through6780this method. Use6781Mix_RegisterEffect(MIX_CHANNEL_POST, mix_func, NULL, arg) to6782use multiple postmix processors.</p>6783<p>This postmix processor is run AFTER all the registered6784postmixers set up by Mix_RegisterEffect.</p>6785<p>6786<code>void Mix_SetPostMix(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg)6787</code>6788</p>6789</remarks>6790<example>6791<code>6792// make a passthru processor function that does nothing...6793void noEffect(void *udata, Uint8 *stream, int len)6794{6795// you could work with stream here...6796}6797...6798// register noEffect as a postmix processor6799Mix_SetPostMix(noEffect, NULL);6800</code>6801</example>6802<param name="mix_func">The function pointer for the postmix processor.6803NULL unregisters the current postmixer.</param>6804<param name="arg">A pointer to data to pass into the mix_func's6805udata parameter. It is a good place to keep the state data for6806the processor, especially if the processor is made to handle6807multiple channels at the same time.6808This may be NULL, depending on the processor.</param>6809<seealso cref="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)"/>6810</member>6811<member name="M:Tao.Sdl.SdlMixer.Mix_HookMusic(Tao.Sdl.SdlMixer.MixFunctionDelegate,System.IntPtr)">6812<summary>6813Hook for a custom music player6814</summary>6815<remarks>6816This sets up a custom music player function. The function will6817be called with arg passed into the udata parameter when the6818mix_func is called. The stream parameter passes in the audio6819stream buffer to be filled with len bytes of music. The music6820player will then be called automatically when the mixer needs6821it. Music playing will start as soon as this is called. All the6822music playing and stopping functions have no effect on music6823after this. Pause and resume will work. Using a custom music6824player and the internal music player is not possible, the custom6825music player takes priority. To stop the custom music player call6826Mix_HookMusic(NULL, NULL).6827<p>NOTE: NEVER call SDL_Mixer functions, nor SDL_LockAudio,6828from a callback function.</p>6829<p>6830<code>void Mix_HookMusic(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg)6831</code>6832</p>6833</remarks>6834<example>6835<code>6836// make a music play function6837// it expects udata to be a pointer to an int6838void myMusicPlayer(void *udata, Uint8 *stream, int len)6839{6840int i, pos=*(int*)udata;68416842// fill buffer with...uh...music...6843for(i=0; i<len; i++)6844stream[i]=(i+pos)&ff;68456846// set udata for next time6847pos+=len;6848*(int*)udata=pos;6849}6850...6851// use myMusicPlayer for playing...uh...music6852int music_pos=0;6853Mix_HookMusic(myMusicPlayer, &music_pos);6854</code>6855</example>6856<param name="mix_func">Function pointer to a music player mixer function.6857NULL will stop the use of the music player,6858returning the mixer to using the internal music players6859like usual.</param>6860<param name="arg">6861This is passed to the mix_func's udata parameter when it is called.6862</param>6863<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicCMD(System.String)"/>6864<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GetMusicHookData"/>6865</member>6866<member name="M:Tao.Sdl.SdlMixer.Mix_HookMusicFinished(Tao.Sdl.SdlMixer.MusicFinishedDelegate)">6867<summary>6868Add your own callback when the music has finished playing.6869This callback is only called if the music finishes naturally.6870</summary>6871<remarks>6872This sets up a function to be called when music playback is halted.6873Any time music stops, the music_finished function will be called.6874Call with NULL to remove the callback.6875<p>NOTE: NEVER call SDL_Mixer functions, nor SDL_LockAudio,6876from a callback function.</p>6877<p>Binds to C-function in SDL_mixer.h6878<code>void Mix_HookMusicFinished(void (*music_finished)())6879</code>6880</p>6881</remarks>6882<param name="music_finished">6883Function pointer to a void function().6884NULL will remove the hook.6885</param>6886<example>6887<code>6888// make a music finished function6889void musicFinished()6890{6891printf("Music stopped.\n");6892}6893...6894// use musicFinished for when music stops6895Mix_HookMusicFinished(musicFinished);6896</code></example>6897<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltMusic"/>6898<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutMusic(System.Int32)"/>6899</member>6900<member name="M:Tao.Sdl.SdlMixer.Mix_GetMusicHookData">6901<summary>6902Get a pointer to the user data for the current music hook6903</summary>6904<remarks>6905Get the arg passed into Mix_HookMusic.6906<p>Binds to C-function in SDL_mixer.h6907<code>void *Mix_GetMusicHookData()6908</code>6909</p>6910</remarks>6911<example>6912<code>6913// retrieve the music hook data pointer6914void *data;6915data=Mix_GetMusicHookData();6916</code></example>6917<returns>the arg pointer.</returns>6918<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HookMusic(Tao.Sdl.SdlMixer.MixFunctionDelegate,System.IntPtr)"/>6919</member>6920<member name="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)">6921<summary>6922Set callback for when channel finishes playing6923</summary>6924<remarks>6925When channel playback is halted, then the specified6926channel_finished function is called. The channel parameter6927will contain the channel number that has finished.6928<p>NOTE: NEVER call SDL_Mixer functions,6929nor SDL_LockAudio, from a callback function.</p>6930<p>Binds to C-function in SDL_mixer.h6931<code>void Mix_ChannelFinished(void (*channel_finished)(int channel))6932</code>6933</p>6934</remarks>6935<example>6936<code>6937// a simple channel_finished function6938void channelDone(int channel)6939{6940printf("channel %d finished playback.\n",channel);6941}69426943// make a channelDone function6944void channelDone(int channel)6945{6946printf("channel %d finished playing.\n", channel);6947}6948...6949// set the callback for when a channel stops playing6950Mix_ChannelFinished(channelDone);6951</code></example>6952<param name="channel_finished">6953Function to call when any channel finishes playback.6954</param>6955<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>6956<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ExpireChannel(System.Int32,System.Int32)"/>6957</member>6958<member name="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)">6959<summary>6960Hook a processor to a channel6961</summary>6962<remarks>6963Hook a processor function f into a channel for post processing6964effects. You may just be reading the data and displaying it,6965or you may be altering the stream to add an echo. Most6966processors also have state data that they allocate as they6967are in use, this would be stored in the arg pointer data space.6968When a processor is finished being used, any function passed6969into d will be called, which is when your processor should clean6970up the data in the arg data space.6971<p>The effects are put into a linked list, and always appended to6972the end, meaning they always work on previously registered effects6973output. Effects may be added multiple times in a row. Effects are6974cumulative this way.</p>6975<p>6976<code>int Mix_RegisterEffect(int chan, Mix_EffectFunc_t f, Mix_EffectDone_t d, void *arg)6977</code></p></remarks>6978<param name="f">6979The function pointer for the effects processor.6980</param>6981<param name="arg"></param>6982<param name="chan">channel number to register f and d on.6983Use MIX_CHANNEL_POST to process the postmix stream.</param>6984<param name="d">6985The function pointer for any cleanup routine to be called6986when the channel is done playing a sample.6987This may be NULL for any processors that don't need to6988clean up any memory or other dynamic data.6989</param>6990<returns>6991Zero on errors, such as a nonexisting channel6992</returns>6993<example>6994<code>6995// make a passthru processor function that does nothing...6996void noEffect(int chan, void *stream, int len, void *udata)6997{6998// you could work with stream here...6999}7000...7001// register noEffect as a postmix processor7002if(!Mix_RegisterEffect(MIX_CHANNEL_POST, noEffect, NULL, NULL))7003{7004printf("Mix_RegisterEffect: %s\n", Mix_GetError());7005}7006</code></example>7007<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate)"/>7008<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7009</member>7010<member name="M:Tao.Sdl.SdlMixer.Mix_UnregisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate)">7011<summary>7012Unhook a processor from a channel7013</summary>7014<remarks>7015Remove the oldest (first found) registered effect function7016f from the effect list for channel. This only removes the7017first found occurance of that function, so it may need to7018be called multiple times if you added the same function multiple7019times, just stop removing when Mix_UnregisterEffect returns an7020error, to remove all occurances of f from a channel.7021<p>If the channel is active the registered effect will have its7022Mix_EffectDone_t function called, if it was specified in7023Mix_RegisterEffect.</p>7024<p>7025<code>int Mix_UnregisterEffect(int channel, Mix_EffectFunc_t f)7026</code></p></remarks>7027<param name="f">The function to remove from channel.</param>7028<param name="chan">Channel number to remove f from as a post processor.7029<p>Use MIX_CHANNEL_POST for the postmix stream.</p></param>7030<returns>7031Zero on errors, such as invalid channel,7032or effect function not registered on channel.7033</returns>7034<example>7035<code>7036// unregister the noEffect from the postmix effects7037// this removes all occurances of noEffect registered to the postmix7038while(Mix_UnregisterEffect(MIX_CHANNEL_POST, noEffect));7039// you may print Mix_GetError() if you want to check it.7040// it should say "No such effect registered" after this loop.7041</code></example>7042<seealso cref="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)"/>7043<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7044</member>7045<member name="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)">7046<summary>7047Unhook all processors from a channel7048</summary>7049<remarks>7050This removes all effects registered to channel.7051If the channel is active all the registered effects will7052have their Mix_EffectDone_t functions called, if they7053were specified in Mix_RegisterEffect.7054<p>7055<code>int Mix_UnregisterAllEffects(int channel)7056</code></p></remarks>7057<param name="channel">7058Channel to remove all effects from.7059Use MIX_CHANNEL_POST for the postmix stream.7060</param>7061<returns>7062Zero on errors, such as channel not existing.7063</returns>7064<example>7065<code>7066// remove all effects from channel 07067if(!Mix_UnregisterAllEffects(0))7068{7069printf("Mix_UnregisterAllEffects: %s\n", Mix_GetError());7070}7071</code></example>7072<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate)"/>7073<seealso cref="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)"/>7074</member>7075<member name="M:Tao.Sdl.SdlMixer.Mix_SetPanning(System.Int32,System.Byte,System.Byte)">7076<summary>7077Stereo panning7078</summary>7079<remarks>7080This effect will only work on stereo audio. Meaning you called7081Mix_OpenAudio with 2 channels (MIX_DEFAULT_CHANNELS). The easiest7082way to do true panning is to call7083Mix_SetPanning(channel, left, 254 - left); so that the total7084volume is correct, if you consider the maximum volume to be 1277085per channel for center, or 254 max for left, this works, but7086about halves the effective volume.7087<p>This Function registers the effect for you, so don't try to7088Mix_RegisterEffect it yourself.</p>7089<p>NOTE: Setting both left and right to 255 will unregister the7090effect from channel. You cannot unregister it any other way,7091unless you use Mix_UnregisterAllEffects on the channel.</p>7092<p>NOTE: Using this function on a mono audio device will not7093register the effect, nor will it return an error status.</p>7094<p>Binds to C-function in SDL_mixer.h7095<code>int Mix_SetPanning(int channel, Uint8 left, Uint8 right)7096</code>7097</p>7098</remarks>7099<param name="channel">7100Channel number to register this effect on.7101Use MIX_CHANNEL_POST to process the postmix stream.7102</param>7103<param name="left">7104Volume for the left channel, range is 0(silence) to 255(loud)7105</param>7106<param name="right">7107Volume for the left channel, range is 0(silence) to 255(loud)7108</param>7109<returns>7110Zero on errors, such as bad channel, or if Mix_RegisterEffect failed.7111</returns>7112<example>7113<code>7114// pan channel 1 halfway to the left7115if(!Mix_SetPanning(1, 255, 127))7116{7117printf("Mix_SetPanning: %s\n", Mix_GetError());7118// no panning, is it ok?7119}7120</code>7121</example>7122<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetPosition(System.Int32,System.Int16,System.Byte)"/>7123<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7124</member>7125<member name="M:Tao.Sdl.SdlMixer.Mix_SetPosition(System.Int32,System.Int16,System.Byte)">7126<summary>7127Panning(angular) and distance7128</summary>7129<remarks>7130<p>Binds to C-function in SDL_mixer.h7131<code>int Mix_SetPosition(int channel, Sint16 angle, Uint8 distance)7132</code>7133</p>7134</remarks>7135<param name="channel">7136Channel number to register this effect on.7137Use MIX_CHANNEL_POST to process the postmix stream.7138</param>7139<param name="angle">7140Direction in relation to forward from 0 to 360 degrees.7141Larger angles will be reduced to this range using angles % 360.71420 = directly in front.714390 = directly to the right.7144180 = directly behind.7145270 = directly to the left.7146So you can see it goes clockwise starting at directly in front.7147This ends up being similar in effect to Mix_SetPanning.7148</param>7149<param name="distance">7150The distance from the listener, from 0(near/loud) to 255(far/quiet).7151This is the same as the Mix_SetDistance effect.7152</param>7153<returns>7154Zero on errors, such as an invalid channel,7155or if Mix_RegisterEffect failed.7156</returns>7157<example>7158<code>7159// set channel 2 to be behind and right, and 100 units away7160if(!Mix_SetPosition(2, 135, 100))7161{7162printf("Mix_SetPosition: %s\n", Mix_GetError());7163// no position effect, is it ok?7164}7165</code></example>7166<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetPanning(System.Int32,System.Byte,System.Byte)"/>7167<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetDistance(System.Int32,System.Byte)"/>7168<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7169</member>7170<member name="M:Tao.Sdl.SdlMixer.Mix_SetDistance(System.Int32,System.Byte)">7171<summary>7172Distance attenuation (volume)7173</summary>7174<remarks>7175This effect simulates a simple attenuation of volume due to distance.7176The volume never quite reaches silence, even at max distance.7177NOTE: Using a distance of 0 will cause the effect to unregister7178itself from channel. You cannot unregister it any other way,7179unless you use Mix_UnregisterAllEffects on the channel.7180<p>Binds to C-function in SDL_mixer.h7181<code>int Mix_SetDistance(int channel, Uint8 distance)7182</code>7183</p>7184</remarks>7185<param name="channel">7186Channel number to register this effect on.7187Use MIX_CHANNEL_POST to process the postmix stream.7188</param>7189<param name="distance">7190Specify the distance from the listener,7191from 0(close/loud) to 255(far/quiet).7192</param>7193<returns>7194Zero on errors, such as an invalid channel,7195or if Mix_RegisterEffect failed.7196</returns>7197<example>7198<code>7199// distance channel 1 to be farthest away7200if(!Mix_SetDistance(1, 255))7201{7202printf("Mix_SetDistance: %s\n", Mix_GetError());7203// no distance, is it ok?7204}7205</code></example>7206<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetPosition(System.Int32,System.Int16,System.Byte)"/>7207<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7208</member>7209<member name="M:Tao.Sdl.SdlMixer.Mix_SetReverseStereo(System.Int32,System.Int32)">7210<summary>7211Swap stereo left and right7212</summary>7213<remarks>7214Simple reverse stereo, swaps left and right channel sound.7215<p>NOTE: Using a flip of 0, will cause the effect to unregister7216itself from channel. You cannot unregister it any other way,7217unless you use Mix_UnregisterAllEffects on the channel.</p>7218<p>Binds to C-function in SDL_mixer.h7219<code>int Mix_SetReverseStereo(int channel, int flip)7220</code>7221</p>7222</remarks>7223<param name="channel">7224Channel number to register this effect on.7225Use MIX_CHANNEL_POST to process the postmix stream.7226</param>7227<param name="flip">7228Must be non-zero to work, means nothing to the effect processor itself.7229set to zero to unregister the effect from channel.7230</param>7231<returns>7232Zero on errors, such as an invalid channel, or if Mix_RegisterEffect failed.7233</returns>7234<example>7235<code>7236// set the total mixer output to be reverse stereo7237if(!Mix_SetReverseStereo(MIX_CHANNEL_POST, 1))7238{7239printf("Mix_SetReverseStereo: %s\n", Mix_GetError());7240// no reverse stereo, is it ok?7241}7242</code>7243</example>7244<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterAllEffects(System.Int32)"/>7245</member>7246<member name="M:Tao.Sdl.SdlMixer.Mix_ReserveChannels(System.Int32)">7247<summary>7248Prevent channels from being used in default group7249</summary>7250<remarks>7251Reserve num channels from being used when playing samples when7252passing in -1 as a channel number to playback functions. The7253channels are reserved starting from channel 0 to num-1. Passing7254in zero will unreserve all channels. Normally SDL_mixer starts7255without any channels reserved.7256<p>7257The following functions are affected by this setting:7258<br><see cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)"/></br>7259<br><see cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32)"/></br>7260<br><see cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/></br>7261<br><see cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/></br>7262</p>7263<p>Binds to C-function in SDL_mixer.h7264<code>int Mix_ReserveChannels(int num)7265</code>7266</p>7267</remarks>7268<param name="num">7269Number of channels to reserve from default mixing.7270Zero removes all reservations.7271</param>7272<returns>The number of channels reserved.7273Never fails, but may return less channels than you ask for,7274depending on the number of channels previously allocated.7275</returns>7276<example>7277<code>7278// reserve the first 8 mixing channels7279int reserved_count;7280reserved_count=Mix_ReserveChannels(8);7281if(reserved_count!=8)7282{7283printf("reserved %d channels from default mixing.\n",reserved_count);7284printf("8 channels were not reserved!\n");7285// this might be a critical error...7286}7287</code></example>7288<seealso cref="M:Tao.Sdl.SdlMixer.Mix_AllocateChannels(System.Int32)"/>7289</member>7290<member name="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)">7291<summary>7292Add/remove channel to/from group7293</summary>7294<remarks>7295Add which channel to group tag, or reset7296it's group to the default group tag (-1).7297<p>Binds to C-function in SDL_mixer.h7298<code>int Mix_GroupChannel(int which, int tag)7299</code>7300</p>7301</remarks>7302<param name="which">7303Channel number of channels to assign tag to.7304</param>7305<param name="tag">7306A group number Any positive numbers (including zero).7307-1 is the default group. Use -1 to remove a group tag essentially.7308</param>7309<returns>7310True(1) on success. False(0) is returned when7311the channel specified is invalid.7312</returns>7313<example>7314<code>7315// add channel 0 to group 17316if(!Mix_GroupChannel(0,1))7317{7318// bad channel, apparently channel 1 isn't allocated7319}7320</code></example>7321<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)"/>7322<seealso cref="M:Tao.Sdl.SdlMixer.Mix_AllocateChannels(System.Int32)"/>7323</member>7324<member name="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)">7325<summary>7326Assign several consecutive channels to a group7327</summary>7328<remarks>7329Add channels starting at from up through to to group tag,7330or reset it's group to the default group tag (-1).7331<p>Binds to C-function in SDL_mixer.h7332<code>int Mix_GroupChannels(int from, int to, int tag)7333</code>7334</p>7335</remarks>7336<param name="from">7337First Channel number of channels to assign tag to.7338Must be less or equal to to.7339</param>7340<param name="to">7341Last Channel number of channels to assign tag to. Must be greater or equal to from.7342</param>7343<param name="tag">7344A group number. Any positive numbers (including zero).7345-1 is the default group. Use -1 to remove a group tag essentially.7346</param>7347<returns>7348The number of tagged channels on success. If that number is less7349than to-from+1 then some channels were no tagged because they didn't7350exist.7351</returns>7352<example>7353<code>7354// add channels 0 through 7 to group 17355if(Mix_GroupChannels(0,7,1)!=8)7356{7357// some bad channels, apparently some channels aren't allocated7358}7359</code></example>7360<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)"/>7361<seealso cref="M:Tao.Sdl.SdlMixer.Mix_AllocateChannels(System.Int32)"/>7362</member>7363<member name="M:Tao.Sdl.SdlMixer.Mix_GroupAvailable(System.Int32)">7364<summary>7365Get first inactive channel in group.7366</summary>7367<remarks>7368Find the first available (not playing) channel in group tag.7369<p>Binds to C-function in SDL_mixer.h7370<code>int Mix_GroupAvailable(int tag)7371</code>7372</p>7373</remarks>7374<param name="tag">7375A group number Any positive numbers (including zero).7376-1 will search ALL channels.7377</param>7378<returns>7379The channel found on success. -1 is returned when no7380channels in the group are available.7381</returns>7382<example>7383<code>7384// find the first available channel in group 17385int channel;7386channel=Mix_GroupAvailable(1);7387if (channel==-1)7388{7389// no channel available...7390// perhaps search for oldest or newest channel in use...7391}7392</code></example>7393<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupOldest(System.Int32)"/>7394<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupNewer(System.Int32)"/>7395<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)"/>7396<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)"/>7397</member>7398<member name="M:Tao.Sdl.SdlMixer.Mix_GroupCount(System.Int32)">7399<summary>7400Get number of channels in group.7401</summary>7402<remarks>7403Count the number of channels in group tag.7404<p>Binds to C-function in SDL_mixer.h7405<code>int Mix_GroupCount(int tag)7406</code>7407</p>7408</remarks>7409<param name="tag">7410A group number Any positive numbers (including zero).7411-1 will count ALL channels.7412</param>7413<returns>7414The number of channels found in the group. This function never fails.7415</returns>7416<example>7417<code>7418// count the number of channels in group 17419printf("There are %d channels in group 1\n", Mix_GroupCount(1));7420</code></example>7421<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)"/>7422<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)"/>7423</member>7424<member name="M:Tao.Sdl.SdlMixer.Mix_GroupOldest(System.Int32)">7425<summary>7426Get oldest busy channel in group7427</summary>7428<remarks>7429Find the oldest actively playing channel in group tag.7430<p>Binds to C-function in SDL_mixer.h7431<code>int Mix_GroupOldest(int tag)7432</code>7433</p>7434</remarks>7435<param name="tag">7436A group number Any positive numbers (including zero).7437-1 will search ALL channels.7438</param>7439<returns>7440The channel found on success. -1 is returned when no channels in7441the group are playing or the group is empty.7442</returns>7443<example>7444<code>7445// find the oldest playing channel in group 17446int channel;7447channel=Mix_GroupOldest(1);7448if (channel==-1)7449{7450// no channel playing or allocated...7451// perhaps just search for an available channel...7452}7453</code></example>7454<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupNewer(System.Int32)"/>7455<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupAvailable(System.Int32)"/>7456<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)"/>7457<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)"/>7458</member>7459<member name="M:Tao.Sdl.SdlMixer.Mix_GroupNewer(System.Int32)">7460<summary>7461Get youngest busy channel in group7462</summary>7463<remarks>7464Find the newest, most recently started, actively playing7465channel in group tag.7466<p>Binds to C-function in SDL_mixer.h7467<code>int Mix_GroupNewer(int tag)7468</code>7469</p>7470</remarks>7471<param name="tag">7472A group number Any positive numbers (including zero).7473-1 will search ALL channels.7474</param>7475<returns>7476The channel found on success. -1 is returned when no channels in7477the group are playing or the group is empty.7478</returns>7479<example>7480<code>7481// find the newest playing channel in group 17482int channel;7483channel=Mix_GroupNewer(1);7484if (channel==-1)7485{7486// no channel playing or allocated...7487// perhaps just search for an available channel...7488}7489</code>7490</example>7491<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupOldest(System.Int32)"/>7492<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupAvailable(System.Int32)"/>7493<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannel(System.Int32,System.Int32)"/>7494<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GroupChannels(System.Int32,System.Int32,System.Int32)"/>7495</member>7496<member name="M:Tao.Sdl.SdlMixer.Mix_PlayChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32)">7497<summary>7498Play loop and limit by time.7499</summary>7500<remarks>7501If the sample is long enough and has enough7502loops then the sample will stop after ticks milliseconds.7503Otherwise this function is the same as <see cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)"/>.7504<p>Binds to C-function in SDL_mixer.h7505<code>int Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ticks)7506</code>7507</p>7508</remarks>7509<param name="channel">7510Channel to play on, or -1 for the first free unreserved channel.7511</param>7512<param name="chunk">7513Sample to play.7514</param>7515<param name="loops">7516Number of loops, -1 is infinite loops.7517Passing one here plays the sample twice (1 loop).7518</param>7519<param name="ticks">7520Millisecond limit to play sample, at most.7521If not enough loops or the sample chunk is not long enough,7522then the sample may stop before this timeout occurs.7523-1 means play forever.7524</param>7525<returns>7526the channel the sample is played on.7527On any errors, -1 is returned.7528</returns>7529<example>7530<code>7531// play sample on first free unreserved channel7532// play it for half a second7533// Mix_Chunk *sample; //previously loaded7534if(Mix_PlayChannelTimed(-1, sample, -1 , 500)==-1)7535{7536printf("Mix_PlayChannel: %s\n",Mix_GetError());7537// may be critical error, or maybe just no channels were free.7538// you could allocated another channel in that case...7539}7540</code>7541</example>7542<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)"/>7543<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/>7544<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>7545<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ReserveChannels(System.Int32)"/>7546</member>7547<member name="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)">7548<summary>7549Play loop.7550</summary>7551<remarks>7552Play chunk on channel, or if channel is -1,7553pick the first free unreserved channel.7554The sample will play for loops+1 number of times,7555unless stopped by halt, or fade out, or setting a7556new expiration time of less time than it would have7557originally taken to play the loops, or closing the mixer.7558<p>Note: this just calls Mix_PlayChannelTimed()7559with ticks set to -1.</p>7560<p>Binds to C-function in SDL_mixer.h7561<code>int Mix_PlayChannel(int channel, Mix_Chunk *chunk, int loops)7562</code>7563</p>7564</remarks>7565<param name="channel">7566Channel to play on, or -1 for the first free unreserved channel.7567</param>7568<param name="chunk">7569Sample to play.7570</param>7571<param name="loops">7572Number of loops, -1 is infinite loops.7573Passing one here plays the sample twice (1 loop).7574</param>7575<returns>7576the channel the sample is played on. On any errors,7577-1 is returned.7578</returns>7579<example>7580<code>7581// play sample on first free unreserved channel7582// play it exactly once through7583// Mix_Chunk *sample; //previously loaded7584if(Mix_PlayChannel(-1, sample, 1)==-1)7585{7586printf("Mix_PlayChannel: %s\n",Mix_GetError());7587// may be critical error, or maybe just no channels were free.7588// you could allocated another channel in that case...7589}7590</code>7591</example>7592<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>7593<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>7594<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>7595<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ExpireChannel(System.Int32,System.Int32)"/>7596<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ReserveChannels(System.Int32)"/>7597</member>7598<member name="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)">7599<summary>7600Play music, with looping7601</summary>7602<remarks>7603Play the loaded music loop times through from start to finish.7604The previous music will be halted, or if fading out it waits7605(blocking) for that to finish.7606<p>Binds to C-function in SDL_mixer.h7607<code>int Mix_PlayMusic(Mix_Music *music, int loops)7608</code>7609</p>7610</remarks>7611<param name="music">7612Pointer to Mix_Music to play.7613</param>7614<param name="loops">7615number of times to play through the music.7616<br>0 plays the music zero times...</br>7617<br>-1 plays the music forever (or as close as it can get to that)</br>7618</param>7619<returns>76200 on success, or -1 on errors.7621</returns>7622<example>7623<code>7624// play music forever7625// Mix_Music *music; // I assume this has been loaded already7626if(Mix_PlayMusic(music, -1)==-1)7627{7628printf("Mix_PlayMusic: %s\n", Mix_GetError());7629// well, there's no music, but most games don't break without music...7630}7631</code>7632</example>7633<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusic(System.IntPtr,System.Int32,System.Int32)"/>7634</member>7635<member name="M:Tao.Sdl.SdlMixer.Mix_FadeInMusic(System.IntPtr,System.Int32,System.Int32)">7636<summary>7637Play music, with looping, and fade in7638</summary>7639<remarks>7640Fade in over ms milliseconds of time, the loaded music,7641playing it loop times through from start to finish.7642The fade in effect only applies to the first loop.7643Any previous music will be halted, or if it is fading out i7644t will wait (blocking) for the fade to complete.7645This function is the same as Mix_FadeInMusicPos(music, loops, ms, 0).7646<p>Binds to C-function in SDL_mixer.h7647<code>int Mix_FadeInMusic(Mix_Music *music, int loops, int ms)7648</code>7649</p>7650</remarks>7651<param name="music">7652Pointer to Mix_Music to play.7653</param>7654<param name="loops">7655number of times to play through the music.7656<br>76570 plays the music zero times...7658</br>7659<br>7660-1 plays the music forever (or as close as it can get to that)7661</br>7662</param>7663<param name="ms">7664Milliseconds for the fade-in effect to complete.7665</param>7666<returns>76670 on success, or -1 on errors.7668</returns>7669<example>7670<code>7671// play music forever, fading in over 2 seconds7672// Mix_Music *music; // I assume this has been loaded already7673if(Mix_FadeInMusic(music, -1, 2000)==-1)7674{7675printf("Mix_FadeInMusic: %s\n", Mix_GetError());7676// well, there's no music, but most games don't break without music...7677}7678</code>7679</example>7680<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>7681<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusicPos(System.IntPtr,System.Int32,System.Int32,System.Double)"/>7682</member>7683<member name="M:Tao.Sdl.SdlMixer.Mix_FadeInMusicPos(System.IntPtr,System.Int32,System.Int32,System.Double)">7684<summary>7685Play music from a start point, with looping, and fade in7686</summary>7687<remarks>7688Fade in over ms milliseconds of time, the loaded music,7689playing it loop times through from start to finish.7690The fade in effect only applies to the first loop. The first7691time the music is played, it posistion will be set to position,7692which means different things for different types of music files,7693see Mix_SetMusicPosition for more info on that. Any previous7694music will be halted, or if it is fading out it will wait7695(blocking) for the fade to complete.7696<p>Binds to C-function in SDL_mixer.h7697<code>int Mix_FadeInMusicPos(Mix_Music *music, int loops, int ms, double position)7698</code>7699</p>7700</remarks>7701<param name="music">7702Pointer to Mix_Music to play.7703</param>7704<param name="loops">7705number of times to play through the music.7706<br>77070 plays the music zero times...7708</br>7709<br>7710-1 plays the music forever (or as close as it can get to that)7711</br>7712</param>7713<param name="ms">7714Milliseconds for the fade-in effect to complete.7715</param>7716<param name="position">7717Position to play from, see <see cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicPosition(System.Double)"/> for meaning.7718</param>7719<returns>77200 on success, or -1 on errors.7721</returns>7722<example>7723<code>7724// play music forever, fading in over 2 seconds7725// Mix_Music *music; // I assume this has been loaded already7726if(Mix_FadeInMusicPos(music, -1, 2000)==-1)7727{7728printf("Mix_FadeInMusic: %s\n", Mix_GetError());7729// well, there's no music, but most games don't break without music...7730}7731</code>7732</example>7733<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>7734<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusic(System.IntPtr,System.Int32,System.Int32)"/>7735<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicPosition(System.Double)"/>7736</member>7737<member name="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)">7738<summary>7739Play loop with fade in and limit by time7740</summary>7741<remarks>7742If the sample is long enough and has enough loops then the sample7743will stop after ticks milliseconds. Otherwise this function7744is the same as <see cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>.7745<p>Binds to C-function in SDL_mixer.h7746<code>int Mix_FadeInChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ms, int ticks)7747</code>7748</p>7749</remarks>7750<param name="channel">7751Channel to play on, or -1 for the first free unreserved channel.7752</param>7753<param name="chunk">7754Sample to play.7755</param>7756<param name="loops">7757Number of loops, -1 is infinite loops.7758</param>7759<param name="ms">7760Milliseconds of time that the fade-in effect should7761take to go from silence to full volume.7762</param>7763<param name="ticks">Millisecond limit to play sample, at most.7764If not enough loops or the sample chunk is not long enough,7765then the sample may stop before this timeout occurs.7766-1 means play forever.</param>7767<returns>7768the channel the sample is played on. On any errors, -1 is returned.7769</returns>7770<example>7771<code>7772// play sample on first free unreserved channel7773// play it for half a second7774// Mix_Chunk *sample; //previously loaded7775if(Mix_PlayChannelTimed(-1, sample, -1 , 500)==-1)7776{7777printf("Mix_PlayChannel: %s\n",Mix_GetError());7778// may be critical error, or maybe just no channels were free.7779// you could allocated another channel in that case...7780}7781</code>7782</example>7783<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>7784<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>7785<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>7786<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingChannel(System.Int32)"/>7787<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ReserveChannels(System.Int32)"/>7788<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ExpireChannel(System.Int32,System.Int32)"/>7789</member>7790<member name="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)">7791<summary>7792Play loop with fade in7793</summary>7794<remarks>7795Play chunk on channel, or if channel is -1,7796pick the first free unreserved channel.7797The channel volume starts at 0 and fades up to7798full volume over ms milliseconds of time.7799The sample may end before the fade-in is7800complete if it is too short or doesn't have enough loops.7801The sample will play for loops+1 number of times,7802unless stopped by halt, or fade out, or setting7803a new expiration time of less time than it would7804have originally taken to play the loops, or closing the mixer.7805Note: this just calls <see cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/>7806with ticks set to -1.7807<p>Binds to C-function in SDL_mixer.h7808<code>int Mix_FadeInChannel(int channel, Mix_Chunk *chunk, int loops, int ms)7809</code>7810</p>7811</remarks>7812<param name="channel">7813Channel to play on, or -1 for the first free unreserved channel.7814</param>7815<param name="chunk">Sample to play.</param>7816<param name="loops">7817Number of loops, -1 is infinite loops.7818Passing one here plays the sample twice (1 loop).7819</param>7820<param name="ms">7821Milliseconds of time that the fade-in effect7822should take to go from silence to full volume.7823</param>7824<returns>7825the channel the sample is played on.7826On any errors, -1 is returned.7827</returns>7828<example>7829<code>7830// play sample on first free unreserved channel7831// play it exactly 3 times through7832// fade in over one second7833// Mix_Chunk *sample; //previously loaded7834if(Mix_FadeInChannel(-1, sample, 3, 1000)==-1)7835{7836printf("Mix_FadeInChannel: %s\n",Mix_GetError());7837// may be critical error, or maybe just no channels were free.7838// you could allocated another channel in that case...7839}7840</code>7841</example>7842<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)"/>7843<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/>7844<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingChannel(System.Int32)"/>7845<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>7846<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ReserveChannels(System.Int32)"/>7847</member>7848<member name="M:Tao.Sdl.SdlMixer.Mix_Volume(System.Int32,System.Int32)">7849<summary>7850Set the mix volume of a channel7851</summary>7852<remarks>7853Set the volume for any allocated channel.7854If channel is -1 then all channels at are set at once.7855The volume is applied during the final mix, along7856with the sample volume. So setting this volume to785764 will halve the output of all samples played on7858the specified channel. All channels default to a7859volume of 128, which is the max. Newly allocated7860channels will have the max volume set, so setting7861all channels volumes does not affect subsequent7862channel allocations.7863<p>Binds to C-function in SDL_mixer.h7864<code>int Mix_Volume(int channel, int volume)7865</code>7866</p>7867</remarks>7868<param name="channel">7869Channel to set mix volume for.7870-1 will set the volume for all allocated channels.7871</param>7872<param name="volume">7873The volume to use from 0 to MIX_MAX_VOLUME(128).7874If greater than MIX_MAX_VOLUME,7875then it will be set to MIX_MAX_VOLUME.7876If less than 0 then the volume will not be set.7877</param>7878<returns>7879current volume of the channel.7880If channel is -1, the average volume is returned.7881</returns>7882<example>7883<code>7884// set channel 1 to half volume7885Mix_Volume(1,MIX_MAX_VOLUME/2);78867887// print the average volume7888printf("Average volume is %d\n",Mix_Volume(-1,-1));7889</code>7890</example>7891<seealso cref="M:Tao.Sdl.SdlMixer.Mix_VolumeChunk(System.IntPtr,System.Int32)"/>7892<seealso cref="M:Tao.Sdl.SdlMixer.Mix_VolumeMusic(System.Int32)"/>7893</member>7894<member name="M:Tao.Sdl.SdlMixer.Mix_VolumeChunk(System.IntPtr,System.Int32)">7895<summary>7896Set mix volume7897</summary>7898<remarks>7899Set chunk->volume to volume.7900The volume setting will take effect7901when the chunk is used on a channel,7902being mixed into the output.7903<p>Binds to C-function in SDL_mixer.h7904<code>int Mix_VolumeChunk(Mix_Chunk *chunk, int volume)7905</code>7906</p>7907</remarks>7908<param name="chunk">7909Pointer to the Mix_Chunk to set the volume in.7910</param>7911<param name="volume">7912The volume to use from 0 to MIX_MAX_VOLUME(128).7913If greater than MIX_MAX_VOLUME,7914then it will be set to MIX_MAX_VOLUME.7915If less than 0 then chunk->volume will not be set.7916</param>7917<returns>7918previous chunk->volume setting.7919if you passed a negative value for volume then this7920volume is still the current volume for the chunk.7921</returns>7922<example>7923<code>7924// set the sample's volume to 1/27925// Mix_Chunk *sample;7926int previous_volume;7927previous_volume=Mix_VolumeChunk(sample, MIX_MAX_VOLUME/2);7928printf("previous_volume: %d\n", previous_volume);7929</code>7930</example>7931<seealso cref="T:Tao.Sdl.SdlMixer.Mix_Chunk"/>7932</member>7933<member name="M:Tao.Sdl.SdlMixer.Mix_VolumeMusic(System.Int32)">7934<summary>7935Set music volume7936</summary>7937<remarks>7938Set the volume to volume, if it is 0 or greater, and return the7939previous volume setting. Setting the volume during a fade will7940not work, the faders use this function to perform their effect!7941Setting volume while using an external music player set by7942<see cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicCMD(System.String)"/> will have no effect, and7943<see cref="M:Tao.Sdl.SdlMixer.Mix_GetError"/> will7944show the reason why not.7945<p>Binds to C-function in SDL_mixer.h7946<code>int Mix_VolumeMusic(int volume)7947</code>7948</p>7949</remarks>7950<param name="volume">7951Music volume, from 0 to MIX_MAX_VOLUME(128).7952Values greater than MIX_MAX_VOLUME will use MIX_MAX_VOLUME.7953-1 does not set the volume, but does return the current volume setting.7954</param>7955<returns>7956The previous volume setting.7957</returns>7958<example>7959<code>7960// set the music volume to 1/2 maximum, and then check it7961printf("volume was : %d\n", Mix_VolumeMusic(MIX_MAX_VOLUME/2));7962printf("volume is now : %d\n", Mix_VolumeMusic(-1));7963</code>7964</example>7965<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusic(System.IntPtr,System.Int32,System.Int32)"/>7966<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutMusic(System.Int32)"/>7967<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetMusicCMD(System.String)"/>7968</member>7969<member name="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)">7970<summary>7971Stop playing on a channel7972</summary>7973<remarks>7974Halt channel playback, or all channels if -1 is passed in.7975Any callback set by Mix_ChannelFinished will be called.7976<p>Binds to C-function in SDL_mixer.h7977<code>int Mix_HaltChannel(int channel)7978</code>7979</p>7980</remarks>7981<param name="channel">7982Channel to stop playing, or -1 for all channels.7983</param>7984<returns>7985always returns zero. (kinda silly)7986</returns>7987<example>7988<code>7989// halt playback on all channels7990Mix_HaltChannel(-1);7991</code></example>7992<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ExpireChannel(System.Int32,System.Int32)"/>7993<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>7994<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>7995</member>7996<member name="M:Tao.Sdl.SdlMixer.Mix_HaltGroup(System.Int32)">7997<summary>7998Stop a group7999</summary>8000<remarks>8001Halt playback on all channels in group tag.8002Any callback set by Mix_ChannelFinished will be called once for each channel that stops.8003<p>Binds to C-function in SDL_mixer.h8004<code>int Mix_HaltGroup(int tag)8005</code>8006</p>8007</remarks>8008<param name="tag">8009Group to fade out.8010NOTE: -1 will NOT halt all channels. Use Mix_HaltChannel(-1) for that instead.8011</param>8012<returns>8013always returns zero. (more silly than <see cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>)8014</returns>8015<example>8016<code>8017// halt playback on all channels in group 18018Mix_HaltGroup(1);8019</code>8020</example>8021<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutGroup(System.Int32,System.Int32)"/>8022<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>8023<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>8024</member>8025<member name="M:Tao.Sdl.SdlMixer.Mix_HaltMusic">8026<summary>8027Stop music playback8028</summary>8029<remarks>8030Halt playback of music. This interrupts music fader effects.8031Any callback set by Mix_HookMusicFinished will be called8032when the music stops.8033<p>Binds to C-function in SDL_mixer.h8034<code>int Mix_HaltMusic()8035</code>8036</p>8037</remarks>8038<returns>always returns zero. (even more silly than Mix_HaltGroup)8039</returns>8040<example>8041<code>8042// halt music playback8043Mix_HaltMusic();8044</code>8045</example>8046<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutMusic(System.Int32)"/>8047<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HookMusicFinished(Tao.Sdl.SdlMixer.MusicFinishedDelegate)"/>8048</member>8049<member name="M:Tao.Sdl.SdlMixer.Mix_ExpireChannel(System.Int32,System.Int32)">8050<summary>8051Change the timed stoppage of a channel8052</summary>8053<remarks>8054Halt channel playback, or all channels if -1 is passed in,8055after ticks milliseconds. Any callback set by8056<see cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>8057will be called when the channel expires.8058<p>Binds to C-function in SDL_mixer.h8059<code>int Mix_ExpireChannel(int channel, int ticks)8060</code>8061</p>8062</remarks>8063<param name="channel">8064Channel to stop playing, or -1 for all channels.8065</param>8066<param name="ticks">8067Milliseconds until channel(s) halt playback.8068</param>8069<returns>8070Number of channels set to expire. Whether or not they are active.8071</returns>8072<example>8073<code>8074// halt playback on all channels in 2 seconds8075Mix_ExpireChannel(-1, 2000);8076</code>8077</example>8078<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>8079<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>8080<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>8081</member>8082<member name="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)">8083<summary>8084Stop playing channel after timed fade out8085</summary>8086<remarks>8087Gradually fade out which channel over ms milliseconds starting8088from now. The channel will be halted after the fade out is8089completed. Only channels that are playing are set to fade out,8090including paused channels. Any callback set by8091<see cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/> will be called when the channel8092finishes fading out.8093<p>Binds to C-function in SDL_mixer.h8094<code>int Mix_FadeOutChannel(int which, int ms)8095</code>8096</p>8097</remarks>8098<param name="which">8099Channel to fade out, or -1 to fade all channels out.8100</param>8101<param name="ms">8102Milliseconds of time that the fade-out effect8103should take to go to silence, starting now.8104</param>8105<returns>The number of channels set to fade out.8106</returns>8107<example>8108<code>8109// fade out all channels to finish 3 seconds from now8110printf("starting fade out of %d channels\n", Mix_FadeOutChannel(-1, 3000));8111</code>8112</example>8113<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>8114<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/>8115<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingChannel(System.Int32)"/>8116<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>8117</member>8118<member name="M:Tao.Sdl.SdlMixer.Mix_FadeOutGroup(System.Int32,System.Int32)">8119<summary>8120Fade out a group over time8121</summary>8122<remarks>8123Gradually fade out channels in group tag over ms milliseconds8124starting from now. The channels will be halted after the fade8125out is completed. Only channels that are playing are set to8126fade out, including paused channels. Any callback set by8127<see cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/> will be called when each8128channel finishes fading out.8129<p>Binds to C-function in SDL_mixer.h8130<code>int Mix_FadeOutGroup(int tag, int ms)8131</code>8132</p>8133</remarks>8134<param name="tag">8135Group to fade out.8136NOTE: -1 will NOT fade all channels out.8137Use Mix_FadeOutChannel(-1) for that instead.8138</param>8139<param name="ms">8140Milliseconds of time that the fade-out effect8141should take to go to silence, starting now.8142</param>8143<returns>8144The number of channels set to fade out.8145</returns>8146<example>8147<code>8148// fade out all channels in group 1 to finish 3 seconds from now8149printf("starting fade out of %d channels\n", Mix_FadeOutGroup(1, 3000));8150</code>8151</example>8152<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltGroup(System.Int32)"/>8153<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>8154<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingChannel(System.Int32)"/>8155<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ChannelFinished(Tao.Sdl.SdlMixer.ChannelFinishedDelegate)"/>8156</member>8157<member name="M:Tao.Sdl.SdlMixer.Mix_FadeOutMusic(System.Int32)">8158<summary>8159Stop music, with fade out8160</summary>8161<remarks>8162Gradually fade out the music over ms milliseconds starting from8163now. The music will be halted after the fade out is completed.8164Only when music is playing and not fading already are set to8165fade out, including paused channels. Any callback set by8166<see cref="M:Tao.Sdl.SdlMixer.Mix_HookMusicFinished(Tao.Sdl.SdlMixer.MusicFinishedDelegate)"/> will be called when8167the music finishes fading out.8168<p>Binds to C-function in SDL_mixer.h8169<code>int Mix_FadeOutMusic(int ms)8170</code>8171</p>8172</remarks>8173<param name="ms">8174Milliseconds of time that the fade-out effect8175should take to go to silence, starting now.8176</param>8177<returns>1 on success, 0 on failure.</returns>8178<example>8179<code>8180// fade out music to finish 3 seconds from now8181while(!Mix_FadeOutMusic(3000) && Mix_PlayingMusic())8182{8183// wait for any fades to complete8184SDL_Delay(100);8185}8186</code>8187</example>8188<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltMusic"/>8189<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingMusic"/>8190<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayingMusic"/>8191<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HookMusicFinished(Tao.Sdl.SdlMixer.MusicFinishedDelegate)"/>8192</member>8193<member name="M:Tao.Sdl.SdlMixer.Mix_FadingMusic">8194<summary>8195Get status of current music fade activity8196</summary>8197<remarks>8198Tells you if music is fading in, out, or not at all.8199Does not tell you if the channel is playing anything,8200or paused, so you'd need to test that separately.8201<p>Binds to C-function in SDL_mixer.h8202<code>Mix_Fading Mix_FadingMusic()8203</code>8204</p>8205</remarks>8206<returns>8207the fading status. Never returns an error.8208</returns>8209<example>8210<code>8211// check the music fade status8212switch(Mix_FadingMusic())8213{8214case MIX_NO_FADING:8215printf("Not fading music.\n");8216break;8217case MIX_FADING_OUT:8218printf("Fading out music.\n");8219break;8220case MIX_FADING_IN:8221printf("Fading in music.\n");8222break;8223}8224</code>8225</example>8226<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PausedMusic"/>8227<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayingMusic"/>8228<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusicPos(System.IntPtr,System.Int32,System.Int32,System.Double)"/>8229<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutMusic(System.Int32)"/>8230</member>8231<member name="M:Tao.Sdl.SdlMixer.Mix_FadingChannel(System.Int32)">8232<summary>8233Get the fade status of a channel8234</summary>8235<remarks>8236Tells you if which channel is fading in, out, or not.8237Does not tell you if the channel is playing anything,8238or paused, so you'd need to test that separately.8239<p>Binds to C-function in SDL_mixer.h8240<code>Mix_Fading Mix_FadingChannel(int which)8241</code>8242</p>8243</remarks>8244<param name="which">8245Channel to get the fade activity status from.8246-1 is not valid, and will probably crash the program.8247</param>8248<returns>the fading status. Never returns an error.8249</returns>8250<example>8251<code>8252// check the fade status on channel 08253switch(Mix_FadingChannel(0))8254{8255case MIX_NO_FADING:8256printf("Not fading.\n");8257break;8258case MIX_FADING_OUT:8259printf("Fading out.\n");8260break;8261case MIX_FADING_IN:8262printf("Fading in.\n");8263break;8264}8265</code>8266</example>8267<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Paused(System.Int32)"/>8268<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Playing(System.Int32)"/>8269<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannel(System.Int32,System.IntPtr,System.Int32,System.Int32)"/>8270<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInChannelTimed(System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32)"/>8271<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeOutChannel(System.Int32,System.Int32)"/>8272</member>8273<member name="M:Tao.Sdl.SdlMixer.Mix_Pause(System.Int32)">8274<summary>8275Pause a particular channel8276</summary>8277<remarks>8278Pause channel, or all playing channels if -1 is passed in.8279You may still halt a paused channel.8280Note: Only channels which are actively playing will be paused.8281<p>Binds to C-function in SDL_mixer.h8282<code>void Mix_Pause(int channel)8283</code>8284</p>8285</remarks>8286<param name="channel">8287Channel to pause on, or -1 for all channels.8288</param>8289<example>8290<code>8291// pause all sample playback8292Mix_Pause(-1);8293</code>8294</example>8295<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Resume(System.Int32)"/>8296<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Paused(System.Int32)"/>8297<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltChannel(System.Int32)"/>8298</member>8299<member name="M:Tao.Sdl.SdlMixer.Mix_Resume(System.Int32)">8300<summary>8301Resume a paused channel8302</summary>8303<remarks>8304Unpause channel, or all playing and8305paused channels if -1 is passed in.8306<p>Binds to C-function in SDL_mixer.h8307<code>void Mix_Resume(int channel)8308</code>8309</p>8310</remarks>8311<param name="channel">8312Channel to resume playing, or -1 for all channels.8313</param>8314<example>8315<code>8316// resume playback on all previously active channels8317Mix_Resume(-1);8318</code>8319</example>8320<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Pause(System.Int32)"/>8321<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Paused(System.Int32)"/>8322</member>8323<member name="M:Tao.Sdl.SdlMixer.Mix_Paused(System.Int32)">8324<summary>8325Get the pause status of a channel8326</summary>8327<remarks>8328Tells you if channel is paused, or not.8329Note: Does not check if the channel has been halted8330after it was paused, which may seem a little weird.8331<p>Binds to C-function in SDL_mixer.h8332<code>int Mix_Paused(int channel)8333</code>8334</p>8335</remarks>8336<param name="channel">8337Channel to test whether it is paused or not.8338-1 will tell you how many channels are paused.8339</param>8340<returns>8341Zero if the channel is not paused. Otherwise if you passed in -1,8342the number of paused channels is returned. If you passed in a8343specific channel, then 1 is returned if it is paused.8344</returns>8345<example>8346<code>8347// check the pause status on all channels8348printf("%d channels are paused\n", Mix_Paused(-1));8349</code>8350</example>8351<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Playing(System.Int32)"/>8352<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Pause(System.Int32)"/>8353<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Resume(System.Int32)"/>8354</member>8355<member name="M:Tao.Sdl.SdlMixer.Mix_PauseMusic">8356<summary>8357Pause music8358</summary>8359<remarks>8360Pause the music playback. You may halt paused music.8361Note: Music can only be paused if it is actively playing.8362<p>Binds to C-function in SDL_mixer.h8363<code>void Mix_PauseMusic()8364</code>8365</p>8366</remarks>8367<example>8368<code>8369// pause music playback8370Mix_PauseMusic();8371</code>8372</example>8373<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ResumeMusic"/>8374<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PausedMusic"/>8375<seealso cref="M:Tao.Sdl.SdlMixer.Mix_HaltMusic"/>8376</member>8377<member name="M:Tao.Sdl.SdlMixer.Mix_ResumeMusic">8378<summary>8379Resume paused music8380</summary>8381<remarks>8382Unpause the music. This is safe to use on halted,8383paused, and already playing music.8384<p>Binds to C-function in SDL_mixer.h8385<code>void Mix_ResumeMusic()8386</code>8387</p>8388</remarks>8389<example>8390<code>8391// resume music playback8392Mix_ResumeMusic();8393</code>8394</example>8395<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PauseMusic"/>8396<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PausedMusic"/>8397</member>8398<member name="M:Tao.Sdl.SdlMixer.Mix_RewindMusic">8399<summary>8400Rewind music to beginning8401</summary>8402<remarks>8403Rewind the music to the start. This is safe to use on halted,8404paused, and already playing music. It is not useful to rewind8405the music immediately after starting playback, because it8406starts at the beginning by default.8407<p>This function only works for these streams:8408MOD, OGG, MP3, Native MIDI.</p>8409<p>Binds to C-function in SDL_mixer.h8410<code>void Mix_RewindMusic()8411</code>8412</p>8413</remarks>8414<example>8415<code>8416// rewind music playback to the start8417Mix_RewindMusic();8418</code>8419</example>8420<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>8421</member>8422<member name="M:Tao.Sdl.SdlMixer.Mix_PausedMusic">8423<summary>8424Test whether music is paused8425</summary>8426<remarks>8427Tells you if music is paused, or not.8428Note: Does not check if the music was been halted8429after it was paused, which may seem a little weird.8430<p>Binds to C-function in SDL_mixer.h8431<code>int Mix_PausedMusic()8432</code>8433</p>8434</remarks>8435<returns>8436Zero if music is not paused. 1 if it is paused.8437</returns>8438<example>8439<code>8440// check the music pause status8441printf("music is%s paused\n", Mix_PausedMusic()?"":" not");8442</code>8443</example>8444<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayingMusic"/>8445<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PauseMusic"/>8446<seealso cref="M:Tao.Sdl.SdlMixer.Mix_ResumeMusic"/>8447</member>8448<member name="M:Tao.Sdl.SdlMixer.Mix_SetMusicPosition(System.Double)">8449<summary>8450Set position of playback in stream.8451</summary>8452<remarks>8453Set the position of the currently playing music.8454The position takes different meanings for different music sources.8455It only works on the music sources listed below.8456<code>8457MOD8458The double is cast to Uint16 and used for a pattern number in the module.8459Passing zero is similar to rewinding the song.8460OGG8461Jumps to position seconds from the beginning of the song.8462MP38463Jumps to position seconds from the current position in the stream.8464</code>8465So you may want to call Mix_RewindMusic before this.8466Does not go in reverse...negative values do nothing.8467<p>Binds to C-function in SDL_mixer.h8468<code>int Mix_SetMusicPosition(double position)8469</code>8470</p>8471</remarks>8472<param name="position">Position to play from.</param>8473<returns>84740 on success, or -1 if the codec doesn't support this function.8475</returns>8476<example>8477<code>8478// skip one minute into the song, from the start8479// this assumes you are playing an MP38480Mix_RewindMusic();8481if(Mix_SetMusicPosition(60.0)==-1)8482{8483printf("Mix_SetMusicPosition: %s\n", Mix_GetError());8484}8485</code>8486</example>8487<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadeInMusicPos(System.IntPtr,System.Int32,System.Int32,System.Double)"/>8488</member>8489<member name="M:Tao.Sdl.SdlMixer.Mix_Playing(System.Int32)">8490<summary>8491Get the active playing status of a channel8492</summary>8493<remarks>8494Tells you if channel is playing, or not.8495Note: Does not check if the channel has been paused.8496<p>Binds to C-function in SDL_mixer.h8497<code>int Mix_Playing(int channel)8498</code>8499</p>8500</remarks>8501<param name="channel">8502Channel to test whether it is playing or not.8503-1 will tell you how many channels are playing.8504</param>8505<returns>8506Zero if the channel is not playing. Otherwise if you passed in -1,8507the number of channels playing is returned. If you passed in a8508specific channel, then 1 is returned if it is playing.</returns>8509<example>8510<code>8511// check how many channels are playing samples8512printf("%d channels are playing\n", Mix_Playing(-1));8513</code>8514</example>8515<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Paused(System.Int32)"/>8516<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayChannel(System.Int32,System.IntPtr,System.Int32)"/>8517<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Pause(System.Int32)"/>8518</member>8519<member name="M:Tao.Sdl.SdlMixer.Mix_PlayingMusic">8520<summary>8521Test whether music is playing8522</summary>8523<remarks>8524Tells you if music is actively playing, or not.8525Note: Does not check if the channel has been paused.8526<p>Binds to C-function in SDL_mixer.h8527<code>int Mix_PlayingMusic()8528</code>8529</p>8530</remarks>8531<returns></returns>8532<example>8533<code>8534// check if music is playing8535printf("music is%s playing.\n", Mix_PlayingMusic()?"":" not");8536</code>8537</example>8538<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PausedMusic"/>8539<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FadingMusic"/>8540<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>8541</member>8542<member name="M:Tao.Sdl.SdlMixer.Mix_SetMusicCMD(System.String)">8543<summary>8544Use external program for music playback8545</summary>8546<remarks>8547Setup a command line music player to use to play music.8548Any music playing will be halted. The music file to play8549is set by calling <see cref="M:Tao.Sdl.SdlMixer.Mix_LoadMUS(System.String)"/>(filename),8550and the filename is appended as the last argument on the8551commandline. This allows you to reuse the music command8552to play multiple files. The command will be sent signals8553SIGTERM to halt, SIGSTOP to pause, and SIGCONT to resume.8554The command program should react correctly to those signals8555for it to function properly with SDL_Mixer.8556<see cref="M:Tao.Sdl.SdlMixer.Mix_VolumeMusic(System.Int32)"/> has no effect when using an8557external music player, and <see cref="M:Tao.Sdl.SdlMixer.Mix_GetError"/> will8558have an error code set. You should set the music volume in8559the music player's command if the music player supports that.8560Looping music works, by calling the command again when the8561previous music player process has ended. Playing music8562through a command uses a forked process to execute the music command.8563<p>To use the internal music players set the command to NULL.</p>8564<p>NOTE: External music is not mixed by SDL_mixer,8565so no post-processing hooks will be for music.</p>8566<p>NOTE: Playing music through an external command may not work8567if the sound driver does not support multiple openings of the8568audio device, since SDL_Mixer already has the audio device8569open for playing samples through channels.</p>8570<p>NOTE: Commands are not totally portable, so be careful.</p>8571<p>Binds to C-function in SDL_mixer.h8572<code>int Mix_SetMusicCMD(const char *command)8573</code>8574</p>8575</remarks>8576<param name="command">8577System command to play the music. Should be a complete command,8578as if typed in to the command line, but it should expect the8579filename to be added as the last argument.8580NULL will turn off using an external command for music,8581returning to the internal music playing functionality.8582</param>8583<returns>85840 on success, or -1 on any errors, such as running out of memory.8585</returns>8586<example>8587<code>8588// use mpg123 to play music8589Mix_Music *music=NULL;8590if(Mix_SetMusicCMD("mpg123 -q")==-1)8591{8592perror("Mix_SetMusicCMD");8593}8594else8595{8596// play some mp3 file8597music=Mix_LoadMUS("music.mp3");8598if(music)8599{8600Mix_PlayMusic(music,1);8601}8602}8603</code>8604</example>8605<seealso cref="M:Tao.Sdl.SdlMixer.Mix_PlayMusic(System.IntPtr,System.Int32)"/>8606<seealso cref="M:Tao.Sdl.SdlMixer.Mix_VolumeMusic(System.Int32)"/>8607</member>8608<member name="M:Tao.Sdl.SdlMixer.Mix_SetSynchroValue(System.Int32)">8609<summary>8610Synchro value is set by MikMod from modules while playing8611</summary>8612<remarks>8613<p>Binds to C-function in SDL_mixer.h8614<code>int Mix_SetSynchroValue(int value)8615</code>8616</p>8617</remarks>8618<param name="value"></param>8619<returns></returns>8620<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GetSynchroValue"/>8621</member>8622<member name="M:Tao.Sdl.SdlMixer.Mix_GetSynchroValue">8623<summary>8624Synchro value is set by MikMod from modules while playing8625</summary>8626<remarks>8627<p>Binds to C-function in SDL_mixer.h8628<code>int Mix_GetSynchroValue(void)8629</code>8630</p>8631</remarks>8632<returns></returns>8633<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetSynchroValue(System.Int32)"/>8634</member>8635<member name="M:Tao.Sdl.SdlMixer.Mix_GetChunk(System.Int32)">8636<summary>8637Get the sample playing on a channel8638</summary>8639<remarks>8640Get the most recent sample chunk pointer played on channel.8641This pointer may be currently playing, or just the last used.8642Note: The actual chunk may have been freed, so this pointer8643may not be valid anymore.8644<p>Binds to C-function in SDL_mixer.h8645<code>Mix_Chunk *Mix_GetChunk(int channel)8646</code>8647</p>8648</remarks>8649<param name="channel">8650Channel to get the current Mix_Chunk playing.8651-1 is not valid, but will not crash the program.8652</param>8653<returns>8654Pointer to the Mix_Chunk. NULL is returned if the channel is not8655allocated, or if the channel has not played any samples yet.8656</returns>8657<example>8658<code>8659// get the last chunk used by channel 08660printf("Mix_Chunk* last in use on channel 0 was: %08p\n", Mix_GetChunk(0));8661</code>8662</example>8663<seealso cref="T:Tao.Sdl.SdlMixer.Mix_Chunk"/>8664<seealso cref="M:Tao.Sdl.SdlMixer.Mix_Playing(System.Int32)"/>8665</member>8666<member name="M:Tao.Sdl.SdlMixer.Mix_CloseAudio">8667<summary>8668Close sound mixer8669</summary>8670<remarks>8671<p>Shutdown and cleanup the mixer API.</p>8672After calling this all audio is stopped,8673the device is closed, and the SDL_mixer functions8674should not be used. You may, of course,8675use Mix_OpenAudio to start8676the functionality again.8677<p>Note: This function doesn't do anything until you8678have called it the same number of times that you called8679<see cref="M:Tao.Sdl.SdlMixer.Mix_OpenAudio(System.Int32,System.Int16,System.Int32,System.Int32)"/>. You may use8680<see cref="M:Tao.Sdl.SdlMixer.Mix_QuerySpec(System.Int32@,System.Int16@,System.Int32@)"/> to find out how many8681times Mix_CloseAudio needs to be called before the device is8682actually closed.</p>8683<p>Binds to C-function in SDL_mixer.h8684<code>void Mix_CloseAudio()8685</code>8686</p>8687</remarks>8688<returns></returns>8689<example>8690<code>8691Mix_CloseAudio();8692// you could SDL_Quit(); here...or not.8693</code>8694</example>8695<seealso cref="M:Tao.Sdl.SdlMixer.Mix_OpenAudio(System.Int32,System.Int16,System.Int32,System.Int32)"/>8696<seealso cref="M:Tao.Sdl.SdlMixer.Mix_QuerySpec(System.Int32@,System.Int16@,System.Int32@)"/>8697</member>8698<member name="M:Tao.Sdl.SdlMixer.Mix_SetError(System.String)">8699<summary>8700Set the current error string8701</summary>8702<remarks>8703This is the same as SDL_SetError, which sets the error string8704which may be fetched with Mix_GetError (or SDL_GetError).8705This functions acts like printf, except that it is limited to8706SDL_ERRBUFIZE(1024) chars in length. It only accepts the8707following format types: %s, %d, %f, %p. No variations are8708supported, like %.2f would not work. For any more specifics8709read the SDL docs.8710<p>Binds to C-function in SDL_mixer.h8711<code>8712void Mix_SetError(const char *fmt, ...)8713</code>8714</p>8715</remarks>8716<example>8717<code>8718int mymixfunc(int i) {8719Mix_SetError("mymixfunc is not implemented! %d was passed in.",i);8720return(-1);8721}8722</code></example>8723<param name="message"></param>8724<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GetError"/>8725</member>8726<member name="M:Tao.Sdl.SdlMixer.Mix_GetError">8727<summary>8728Get the current error string8729</summary>8730<remarks>8731This is the same as SDL_GetError, which returns the last error set8732as a string which you may use to tell the user what happened when8733an error status has been returned from an SDL_mixer function call.8734<p>Binds to C-function in SDL_mixer.h8735<code>8736char *Mix_GetError()8737</code>8738</p>8739</remarks>8740<returns>8741a char pointer (string) containing a humam8742readable version or the reason for the last error that8743occured.8744</returns>8745<example>8746<code>8747printf("Oh My Goodness, an error : %s", Mix_GetError());8748</code>8749</example>8750<seealso cref="M:Tao.Sdl.SdlMixer.Mix_SetError(System.String)"/>8751</member>8752<member name="P:Tao.Sdl.SdlMixer.MIX_DEFAULT_FORMAT">8753<summary>8754The suggested default is signed 16bit samples in host byte order.8755</summary>8756</member>8757<member name="T:Tao.Sdl.SdlMixer.Mix_Chunk">8758<summary>8759The internal format for an audio chunk8760</summary>8761<remarks>8762The internal format for an audio chunk.8763This stores the sample data, the length in bytes of that data,8764and the volume to use when mixing the sample.8765<p>Struct in SDL_mixer.h8766<code>8767typedef struct Mix_Chunk {8768int allocated;8769Uint8 *abuf;8770Uint32 alen;8771Uint8 volume; /* Per-sample volume, 0-128 */8772} Mix_Chunk;8773</code></p>8774</remarks>8775<seealso cref="M:Tao.Sdl.SdlMixer.Mix_VolumeChunk(System.IntPtr,System.Int32)"/>8776<seealso cref="M:Tao.Sdl.SdlMixer.Mix_GetChunk(System.Int32)"/>8777<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV(System.String)"/>8778<seealso cref="M:Tao.Sdl.SdlMixer.Mix_LoadWAV_RW(System.IntPtr,System.Int32)"/>8779<seealso cref="M:Tao.Sdl.SdlMixer.Mix_FreeChunk(System.IntPtr)"/>8780</member>8781<member name="F:Tao.Sdl.SdlMixer.Mix_Chunk.allocated">8782<summary>8783a boolean indicating whether to free abuf when the chunk8784is freed.8785</summary>8786<remarks>0 if the memory was not allocated and thus not8787owned by this chunk.87881 if the memory was allocated and is thus owned by this chunk.8789</remarks>8790</member>8791<member name="F:Tao.Sdl.SdlMixer.Mix_Chunk.abuf">8792<summary>8793Pointer to the sample data, which is8794in the output format and sample rate.8795</summary>8796</member>8797<member name="F:Tao.Sdl.SdlMixer.Mix_Chunk.alen">8798<summary>8799Length of abuf in bytes.8800</summary>8801</member>8802<member name="F:Tao.Sdl.SdlMixer.Mix_Chunk.volume">8803<summary>88040 = silent, 128 = max volume.8805This takes effect when mixing.8806</summary>8807</member>8808<member name="T:Tao.Sdl.SdlMixer.MusicFinishedDelegate">8809<summary>88108811</summary>8812</member>8813<member name="T:Tao.Sdl.SdlMixer.MixFunctionDelegate">8814<summary>88158816</summary>8817</member>8818<member name="T:Tao.Sdl.SdlMixer.ChannelFinishedDelegate">8819<summary>88208821</summary>8822</member>8823<member name="T:Tao.Sdl.SdlMixer.MixEffectFunctionDelegate">8824<summary>8825Special effect callback function pointer8826</summary>8827<remarks>8828This is the prototype for effect processing functions.8829These functions are used to apply effects processing on8830a sample chunk. As a channel plays a sample, the registered8831effect functions are called. Each effect would then read and8832perhaps alter the len bytes of stream. It may also be8833advantageous to keep the effect state in the udata, with would8834be setup when registering the effect function on a channel.8835<p>8836<code>8837void (*Mix_EffectFunc_t)(int chan, void *stream, int len, void *udata)8838</code></p>8839</remarks>8840<param name="chan">8841The channel number that this effect is effecting now.8842MIX_CHANNEL_POST is passed in for post processing effects over the8843final mix.8844</param>8845<param name="stream">8846The buffer containing the current sample to process.8847</param>8848<param name="len">8849The length of stream in bytes.8850</param>8851<param name="udata">8852User data pointer that was passed in to Mix_RegisterEffect8853when registering this effect processor function.8854</param>8855<seealso cref="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)"/>8856<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate)"/>8857</member>8858<member name="T:Tao.Sdl.SdlMixer.MixEffectDoneDelegate">8859<summary>8860Special effect done callback function pointer8861</summary>8862<remarks>8863This is the prototype for effect processing functions.8864This is called when a channel has finished playing, or8865halted, or is deallocated. This is also called when a processor8866is unregistered while processing is active. At that time the effects8867processing function may want to reset some internal variables or8868free some memory. It should free memory at least, because the8869processor could be freed after this call.8870<p>8871<code>void (*Mix_EffectDone_t)(int chan, void *udata)8872</code></p></remarks>8873<param name="chan">8874The channel number that this effect is effecting now.8875MIX_CHANNEL_POST is passed in for post processing effects over the8876final mix.8877</param>8878<param name="udata">8879User data pointer that was passed in to Mix_RegisterEffect8880when registering this effect processor function.8881</param>8882<seealso cref="M:Tao.Sdl.SdlMixer.Mix_RegisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate,Tao.Sdl.SdlMixer.MixEffectDoneDelegate,System.IntPtr)"/>8883<seealso cref="M:Tao.Sdl.SdlMixer.Mix_UnregisterEffect(System.Int32,Tao.Sdl.SdlMixer.MixEffectFunctionDelegate)"/>8884</member>8885<member name="T:Tao.Sdl.SdlImage">8886<summary>8887SDL_Image bindings for .NET.8888<p>A simple library to load images of various formats as SDL surfaces.</p>8889</summary>8890<remarks>8891Images provide the basic visual building blocks for any user8892interface. Colors and fun shapes are the stuff that we as kids8893looked at for8894hours at a time while trying to shoot down big aliens and rescue8895pixelated princesses. Now it's our turn to make the images that8896others will remember later in life perhaps. Now how do we get8897this dang images into our SDL programs, and be flexible in the8898handling of the images so that we don't even have to worry about8899what various formats they may be in? This is where SDLimage makes8900all of our lives easier. This document doesn't help you make8901artwork, but it will give you the functional knowledge on how to8902get that art into your game. Now go forth and make your Stick Figure8903of Justice, someone else might fill in for your lack of artistry,8904at least you won't have to make much of an effort to include the8905new and better art into your code.8906<p>8907This is a simple library to load images of various formats as8908SDL surfaces.</p>8909<p>This library supports BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX,8910GIF, JPEG, PNG,8911TGA, and TIFF formats.</p>8912<p>8913<br>JPEG support requires the JPEG library.</br>8914<br>PNG support requires the PNG library.8915and the Zlib library.</br>8916<br>TIFF support requires the TIFF library.</br>8917</p>8918<p>8919SDL_image supports loading and decoding images from the8920following formats:</p>8921<code>8922TGA TrueVision Targa (MUST have .tga)89238924BMP Windows Bitmap(.bmp)89258926PNM Portable Anymap (.pnm)89278928.pbm = Portable BitMap (mono)8929.pgm = Portable GreyMap (256 greys)8930.ppm = Portable PixMap (full color)89318932XPM X11 Pixmap (.xpm) can be #included directly in code8933This is NOT the same as XBM(X11 Bitmap) format, which is for monocolor8934images.89358936XCF89378938GIMP native (.xcf) (XCF = eXperimental Computing Facility?)8939This format is always changing, and since there's no library supplied8940by the GIMP project to load XCF, the loader may frequently fail to8941load much of any image from an XCF file. It's better to load this8942in GIMP and convert to a better supported image format.89438944PCX ZSoft IBM PC Paintbrush (.pcx)8945GIF CompuServe Graphics Interchange Format (.gif)8946JPG Joint Photographic Experts Group JFIF format (.jpg or .jpeg)8947TIF Tagged Image File Format (.tif or .tiff)8948LBM Interleaved Bitmap (.lbm or .iff) FORM : ILBM or PBM(packed bitmap)8949HAM6, HAM8, and 24bit types are not supported.8950PNG Portable Network Graphics (.png)8951</code>8952</remarks>8953</member>8954<member name="F:Tao.Sdl.SdlImage.SDL_IMAGE_NATIVE_LIBRARY">8955<summary>8956Specifies SdlImage's native library archive.8957</summary>8958<remarks>8959Specifies SDL_image.dll everywhere; will be mapped via .config for mono.8960</remarks>8961</member>8962<member name="F:Tao.Sdl.SdlImage.CALLING_CONVENTION">8963<summary>8964Specifies the calling convention.8965</summary>8966<remarks>8967Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>8968for Windows and Linux.8969</remarks>8970</member>8971<member name="F:Tao.Sdl.SdlImage.SDL_IMAGE_MAJOR_VERSION">8972<summary>8973Major Version8974</summary>8975</member>8976<member name="F:Tao.Sdl.SdlImage.SDL_IMAGE_MINOR_VERSION">8977<summary>8978Minor Version8979</summary>8980</member>8981<member name="F:Tao.Sdl.SdlImage.SDL_IMAGE_PATCHLEVEL">8982<summary>8983Patch Version8984</summary>8985</member>8986<member name="M:Tao.Sdl.SdlImage.SDL_IMAGE_VERSION">8987<summary>8988This method can be used to fill a version structure with the compile-time8989version of the SDL_image library.8990</summary>8991<returns>8992This function returns a <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct containing the8993compiled version number8994</returns>8995<remarks>8996<p>8997Binds to C-function call in SDL_image.h:8998<code>#define SDL_IMAGE_VERSION(X)8999{9000(X)->major = SDL_IMAGE_MAJOR_VERSION;9001(X)->minor = SDL_IMAGE_MINOR_VERSION;9002(X)->patch = SDL_IMAGE_PATCHLEVEL;9003}</code>9004</p>9005</remarks>9006</member>9007<member name="M:Tao.Sdl.SdlImage.IMG_Linked_Version">9008<summary>9009Using this you can compare the runtime version to the9010version that you compiled with.9011</summary>9012<returns>9013This function gets the version of the dynamically9014linked SDL_image library in an <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct.9015</returns>9016<remarks>9017<p>9018Binds to C-function call in SDL_image.h:9019<code>const SDL_version * IMG_Linked_Version(void)</code>9020</p>9021</remarks>9022</member>9023<member name="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)">9024<summary>9025Load an image from an SDL data source.9026The 'type' may be one of: "BMP", "GIF", "PNG", etc.9027If the image format supports a transparent pixel, SDL will set the9028colorkey for the surface. You can enable RLE acceleration on the9029surface afterwards by calling:9030SDL_SetColorKey(image, SDL_RLEACCEL, image.format.colorkey);9031</summary>9032<param name="freesrc">9033A non-zero value mean is will automatically close/free9034the src for you.9035</param>9036<param name="src">9037The image is loaded from this.9038</param>9039<param name="type">9040A string that indicates which format type to interpret the image9041as.9042<p>Here is a list of the currently recognized strings9043(case is not important):</p>9044<br>"TGA"</br>9045<br>"BMP"</br>9046<br>"PNM"</br>9047<br>"XPM"</br>9048<br>"XCF"</br>9049<br>"PCX"</br>9050<br>"GIF"</br>9051<br>"JPG"</br>9052<br>"TIF"</br>9053<br>"LBM"</br>9054<br>"PNG"</br>9055</param>9056<remarks>9057Load src for use as a surface.9058This can load all supported image formats.9059This method does not guarantee that the format9060specified by type is the format of the loaded image,9061except in the case when TGA format is specified9062(or any other non-magicable format).9063Using SDL_RWops is not covered here,9064but they enable you to load from almost any source.9065<p>Binds to C-function in SDL_image.h9066<code>9067SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type)9068</code>9069</p>9070</remarks>9071<returns>9072a pointer to the image as a new SDL_Surface.9073NULL is returned on errors.9074</returns>9075<example>9076<code>9077// load sample.tga into image9078SDL_Surface *image;9079image=IMG_Load_RW(SDL_RWFromFile("sample.tga", "rb"), 1, "TGA");9080if(!image)9081{9082printf("IMG_Load_RW: %s\n", IMG_GetError());9083// handle error9084}9085</code>9086</example>9087<seealso cref="M:Tao.Sdl.SdlImage.IMG_Load(System.String)"/>9088<seealso cref="M:Tao.Sdl.SdlImage.IMG_Load_RW(System.IntPtr,System.Int32)"/>9089</member>9090<member name="M:Tao.Sdl.SdlImage.IMG_Load(System.String)">9091<summary>9092Load from a file.9093</summary>9094<remarks>9095Load file for use as an image in a new surface.9096This actually calls IMG_LoadTyped_RW, with the file extension9097used as the type string. This can load all supported image files,9098including TGA as long as the filename ends with ".tga".9099It is best to call this outside of event loops, and rather9100keep the loaded images around until you are really done with9101them, as disk speed and image conversion to a surface is not9102that speedy. Don't forget to SDL_FreeSurface the returned9103surface pointer when you are through with it.9104<p>Binds to C-function in SDL_image.h9105<code>9106SDL_Surface *IMG_Load(const char *file)9107</code>9108</p>9109</remarks>9110<param name="file">9111Image file name to load a surface from.9112</param>9113<returns>9114a pointer to the image as a new SDL_Surface.9115NULL is returned on errors, such as no support9116built for the image, or a file reading error.9117</returns>9118<example>9119<code>9120// load sample.png into image9121SDL_Surface *image;9122image=IMG_Load("sample.png");9123if(!image)9124{9125printf("IMG_Load: %s\n", IMG_GetError());9126// handle error9127}9128</code>9129</example>9130<seealso cref="M:Tao.Sdl.SdlImage.IMG_Load_RW(System.IntPtr,System.Int32)"/>9131<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9132</member>9133<member name="M:Tao.Sdl.SdlImage.IMG_Load_RW(System.IntPtr,System.Int32)">9134<summary>9135Load an image of an unspecified format9136</summary>9137<param name="freesrc">9138A non-zero value mean is will automatically close/free9139the src for you.9140</param>9141<param name="src">9142The image is loaded from pointer.9143</param>9144<remarks>9145Load src for use as a surface.9146This can load all supported image formats, except TGA.9147Using SDL_RWops is not covered here,9148but they enable you to load from almost any source.9149<p>Binds to C-function in SDL_image.h9150<code>9151SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc)9152</code>9153</p>9154</remarks>9155<returns>9156a pointer to the image as a new SDL_Surface.9157NULL is returned on errors.9158</returns>9159<example>9160<code>9161// load sample.png in to image9162SDL_Surface *image;9163image=IMG_Load_RW(SDL_RWFromFile("sample.png", "rb"), 1);9164if(!image)9165{9166printf("IMG_Load_RW: %s\n", IMG_GetError());9167// handle error9168}9169</code>9170</example>9171<seealso cref="M:Tao.Sdl.SdlImage.IMG_Load(System.String)"/>9172<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9173</member>9174<member name="M:Tao.Sdl.SdlImage.IMG_isBMP(System.IntPtr)">9175<summary>9176Test for valid, supported BMP file.9177</summary>9178<remarks>9179If the BMP format is supported,9180then the image data is tested to see if it is readable as a BMP,9181otherwise it returns false (Zero).9182<p>Binds to C-function in SDL_image.h9183<code>9184int IMG_isBMP(SDL_RWops *src)9185</code>9186</p>9187</remarks>9188<param name="src"></param>9189<returns>91901 if the image is a BMP and the BMP format support is9191compiled into SDL_image. 0 is returned otherwise.9192</returns>9193<example>9194<code>9195// Test sample.bmp to see if it is a BMP9196SDL_RWops *rwop;9197rwop=SDL_RWFromFile("sample.bmp", "rb");9198if(IMG_isBMP(rwop))9199printf("sample.bmp is a BMP file.\n");9200else9201printf("sample.bmp is not a BMP file, or BMP support is not available.\n");9202</code>9203</example>9204<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9205</member>9206<member name="M:Tao.Sdl.SdlImage.IMG_isPNM(System.IntPtr)">9207<summary>9208Test for valid, supported PNM file.9209</summary>9210<remarks>9211If the PNM format is supported,9212then the image data is tested to see if it is readable as a PNM,9213otherwise it returns false (Zero).9214<p>Binds to C-function in SDL_image.h9215<code>9216int IMG_isPNM(SDL_RWops *src)9217</code>9218</p>9219</remarks>9220<param name="src"></param>9221<returns>92221 if the image is a PNM and the PNM format support is9223compiled into SDL_image. 0 is returned otherwise.9224</returns>9225<example>9226<code>9227// Test sample.pnm to see if it is a PNM9228SDL_RWops *rwop;9229rwop=SDL_RWFromFile("sample.pnm", "rb");9230if(IMG_isPNM(rwop))9231printf("sample.pnm is a PNM file.\n");9232else9233printf("sample.pnm is not a PNM file, or PNM support is not available.\n");9234</code></example>9235<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9236</member>9237<member name="M:Tao.Sdl.SdlImage.IMG_isXPM(System.IntPtr)">9238<summary>9239Test for valid, supported XPM file.9240</summary>9241<remarks>9242If the XPM format is supported,9243then the image data is tested to see if it is readable as a XPM,9244otherwise it returns false (Zero).9245<p>Binds to C-function in SDL_image.h9246<code>9247int IMG_isXPM(SDL_RWops *src)9248</code>9249</p>9250</remarks>9251<param name="src"></param>9252<returns>92531 if the image is a XPM and the XPM format support is9254compiled into SDL_image. 0 is returned otherwise.9255</returns>9256<example>9257<code>9258// Test sample.xpm to see if it is a XPM9259SDL_RWops *rwop;9260rwop=SDL_RWFromFile("sample.xpm", "rb");9261if(IMG_isXPM(rwop))9262printf("sample.xpm is a XPM file.\n");9263else9264printf("sample.xpm is not a XPM file, or XPM support is not available.\n");9265</code></example>9266<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9267</member>9268<member name="M:Tao.Sdl.SdlImage.IMG_isXV(System.IntPtr)">9269<summary>9270Test for valid, supported XV file.9271</summary>9272<remarks>9273If the XV format is supported,9274then the image data is tested to see if it is readable as a XV,9275otherwise it returns false (Zero).9276<p>Binds to C-function in SDL_image.h9277<code>9278int IMG_isXV(SDL_RWops *src)9279</code>9280</p>9281</remarks>9282<param name="src"></param>9283<returns>92841 if the image is a XV and the XV format support is9285compiled into SDL_image. 0 is returned otherwise.9286</returns>9287<example>9288<code>9289// Test sample.xv to see if it is a XV9290SDL_RWops *rwop;9291rwop=SDL_RWFromFile("sample.xv", "rb");9292if(IMG_isXV(rwop))9293printf("sample.xpm is a XV file.\n");9294else9295printf("sample.xpm is not a XV file, or XV support is not available.\n");9296</code></example>9297<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9298</member>9299<member name="M:Tao.Sdl.SdlImage.IMG_isXCF(System.IntPtr)">9300<summary>9301Test for valid, supported XCF file.9302</summary>9303<remarks>9304If the XCF format is supported,9305then the image data is tested to see if it is readable as a XCF,9306otherwise it returns false (Zero).9307<p>Binds to C-function in SDL_image.h9308<code>9309int IMG_isXCF(SDL_RWops *src)9310</code>9311</p>9312</remarks>9313<param name="src"></param>9314<returns>93151 if the image is a XCF and the XCF format support is9316compiled into SDL_image. 0 is returned otherwise.9317</returns>9318<example>9319<code>9320// Test sample.xcf to see if it is a XCF9321SDL_RWops *rwop;9322rwop=SDL_RWFromFile("sample.xcf", "rb");9323if(IMG_isXCF(rwop))9324printf("sample.xcf is a XCF file.\n");9325else9326printf("sample.xcf is not a XCF file, or XCF support is not available.\n");9327</code></example>9328<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9329</member>9330<member name="M:Tao.Sdl.SdlImage.IMG_isPCX(System.IntPtr)">9331<summary>9332Test for valid, supported PCX file.9333</summary>9334<remarks>9335If the PCX format is supported,9336then the image data is tested to see if it is readable as a PCX,9337otherwise it returns false (Zero).9338<p>Binds to C-function in SDL_image.h9339<code>9340int IMG_isPCX(SDL_RWops *src)9341</code>9342</p>9343</remarks>9344<param name="src"></param>9345<returns>93461 if the image is a PCX and the PCX format support is9347compiled into SDL_image. 0 is returned otherwise.9348</returns>9349<example>9350<code>9351// Test sample.pcx to see if it is a PCX9352SDL_RWops *rwop;9353rwop=SDL_RWFromFile("sample.pcx", "rb");9354if(IMG_isPCX(rwop))9355printf("sample.pcx is a PCX file.\n");9356else9357printf("sample.pcx is not a PCX file, or PCX support is not available.\n");9358</code>9359</example>9360<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9361</member>9362<member name="M:Tao.Sdl.SdlImage.IMG_isGIF(System.IntPtr)">9363<summary>9364Test for valid, supported GIF file.9365</summary>9366<remarks>9367If the GIF format is supported,9368then the image data is tested to see if it is readable as a GIF,9369otherwise it returns false (Zero).9370<p>Binds to C-function in SDL_image.h9371<code>9372int IMG_isGIF(SDL_RWops *src)9373</code>9374</p>9375</remarks>9376<param name="src"></param>9377<returns>93781 if the image is a GIF and the GIF format support is9379compiled into SDL_image. 0 is returned otherwise.9380</returns>9381<example>9382<code>9383// Test sample.gif to see if it is a GIF9384SDL_RWops *rwop;9385rwop=SDL_RWFromFile("sample.gif", "rb");9386if(IMG_isGIF(rwop))9387printf("sample.gif is a GIF file.\n");9388else9389printf("sample.gif is not a GIF file, or GIF support is not available.\n");9390</code>9391</example>9392<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9393</member>9394<member name="M:Tao.Sdl.SdlImage.IMG_isJPG(System.IntPtr)">9395<summary>9396Test for valid, supported JPG file.9397</summary>9398<remarks>9399If the JPG format is supported,9400then the image data is tested to see if it is readable as a JPG,9401otherwise it returns false (Zero).9402<p>Binds to C-function in SDL_image.h9403<code>9404int IMG_isJPG(SDL_RWops *src)9405</code>9406</p>9407</remarks>9408<param name="src"></param>9409<returns>94101 if the image is a JPG and the JPG format support is9411compiled into SDL_image. 0 is returned otherwise.9412</returns>9413<example>9414<code>9415// Test sample.jpg to see if it is a JPG9416SDL_RWops *rwop;9417rwop=SDL_RWFromFile("sample.jpg", "rb");9418if(IMG_isJPG(rwop))9419printf("sample.jpg is a JPG file.\n");9420else9421printf("sample.jpg is not a JPG file, or JPG support is not available.\n");9422</code></example>9423<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9424</member>9425<member name="M:Tao.Sdl.SdlImage.IMG_isTIF(System.IntPtr)">9426<summary>9427Test for valid, supported TIF file.9428</summary>9429<remarks>9430If the TIF format is supported,9431then the image data is tested to see if it is readable as a TIF,9432otherwise it returns false (Zero).9433<p>Binds to C-function in SDL_image.h9434<code>9435int IMG_isTIF(SDL_RWops *src)9436</code>9437</p>9438</remarks>9439<param name="src"></param>9440<returns>94411 if the image is a TIF and the TIF format support is9442compiled into SDL_image. 0 is returned otherwise.9443</returns>9444<example>9445<code>9446// Test sample.tif to see if it is a TIF9447SDL_RWops *rwop;9448rwop=SDL_RWFromFile("sample.tif", "rb");9449if(IMG_isTIF(rwop))9450printf("sample.tif is a TIF file.\n");9451else9452printf("sample.tif is not a TIF file, or TIF support is not available.\n");9453</code></example>9454<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9455</member>9456<member name="M:Tao.Sdl.SdlImage.IMG_isPNG(System.IntPtr)">9457<summary>9458Test for valid, supported PNG file.9459</summary>9460<remarks>9461If the PNG format is supported,9462then the image data is tested to see if it is readable as a PNG,9463otherwise it returns false (Zero).9464<p>Binds to C-function in SDL_image.h9465<code>9466int IMG_isPNG(SDL_RWops *src)9467</code>9468</p>9469</remarks>9470<param name="src"></param>9471<returns>94721 if the image is a PNG and the PNG format support is9473compiled into SDL_image. 0 is returned otherwise.9474</returns>9475<example>9476<code>9477// Test sample.png to see if it is a PNG9478SDL_RWops *rwop;9479rwop=SDL_RWFromFile("sample.png", "rb");9480if(IMG_isPNG(rwop))9481printf("sample.png is a PNG file.\n");9482else9483printf("sample.png is not a PNG file, or PNG support is not available.\n");9484</code>9485</example>9486<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9487</member>9488<member name="M:Tao.Sdl.SdlImage.IMG_isLBM(System.IntPtr)">9489<summary>9490Test for valid, supported LBM file.9491</summary>9492<remarks>9493If the LBM format is supported,9494then the image data is tested to see if it is readable as a LBM,9495otherwise it returns false (Zero).9496<p>Binds to C-function in SDL_image.h9497<code>9498int IMG_isLBM(SDL_RWops *src)9499</code>9500</p>9501</remarks>9502<param name="src"></param>9503<returns>95041 if the image is a LBM and the LBM format support is9505compiled into SDL_image. 0 is returned otherwise.9506</returns>9507<example>9508<code>9509// Test sample.lbm to see if it is a LBM9510SDL_RWops *rwop;9511rwop=SDL_RWFromFile("sample.lbm", "rb");9512if(IMG_isLBM(rwop))9513printf("sample.lbm is a LBM file.\n");9514else9515printf("sample.lbm is not a LBM file, or LBM support is not available.\n");9516</code></example>9517<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9518</member>9519<member name="M:Tao.Sdl.SdlImage.IMG_LoadBMP_RW(System.IntPtr)">9520<summary>9521Load a .BMP image.9522</summary>9523<param name="src">9524The BMP image is loaded from this9525</param>9526<returns>9527a pointer to the image as a new SDL_Surface.9528NULL is returned on errors, like if BMP is not supported,9529or a read error.9530</returns>9531<remarks>9532Load src as a BMP image for use as a surface,9533if BMP support is compiled into the SDL_image library.9534<p>Binds to C-function in SDL_image.h9535<code>9536SDL_Surface *IMG_LoadBMP_RW(SDL_RWops *src)9537</code>9538</p>9539</remarks>9540<example>9541<code>9542// load sample.bmp into image9543SDL_Surface *image;9544SDL_RWops *rwop;9545rwop=SDL_RWFromFile("sample.bmp", "rb");9546image=IMG_LoadBMP_RW(rwop);9547if(!image)9548{9549printf("IMG_LoadBMP_RW: %s\n", IMG_GetError());9550// handle error9551}9552</code></example>9553<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9554<seealso cref="M:Tao.Sdl.SdlImage.IMG_isBMP(System.IntPtr)"/>9555</member>9556<member name="M:Tao.Sdl.SdlImage.IMG_LoadPNM_RW(System.IntPtr)">9557<summary>9558Load a .PNM image.9559</summary>9560<param name="src">9561The PNM image is loaded from this9562</param>9563<returns>9564a pointer to the image as a new SDL_Surface.9565NULL is returned on errors, like if PNM is not supported,9566or a read error.9567</returns>9568<remarks>9569Load src as a PNM image for use as a surface,9570if PNM support is compiled into the SDL_image library.9571<p>Binds to C-function in SDL_image.h9572<code>9573SDL_Surface *IMG_LoadPNM_RW(SDL_RWops *src)9574</code>9575</p>9576</remarks>9577<example>9578<code>9579// load sample.pnm into image9580SDL_Surface *image;9581SDL_RWops *rwop;9582rwop=SDL_RWFromFile("sample.pnm", "rb");9583image=IMG_LoadPNM_RW(rwop);9584if(!image)9585{9586printf("IMG_LoadPNM_RW: %s\n", IMG_GetError());9587// handle error9588}9589</code>9590</example>9591<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9592<seealso cref="M:Tao.Sdl.SdlImage.IMG_isPNM(System.IntPtr)"/>9593</member>9594<member name="M:Tao.Sdl.SdlImage.IMG_LoadXPM_RW(System.IntPtr)">9595<summary>9596Load a .XPM image.9597</summary>9598<param name="src">9599The XPM image is loaded from this9600</param>9601<returns>9602a pointer to the image as a new SDL_Surface.9603NULL is returned on errors, like if XPM is not supported,9604or a read error.9605</returns>9606<remarks>9607Load src as a XPM image for use as a surface,9608if XPM support is compiled into the SDL_image library.9609<p>Binds to C-function in SDL_image.h9610<code>9611SDL_Surface *IMG_LoadXPM_RW(SDL_RWops *src)9612</code>9613</p>9614</remarks>9615<example>9616<code>9617// load sample.xpm into image9618SDL_Surface *image;9619SDL_RWops *rwop;9620rwop=SDL_RWFromFile("sample.xpm", "rb");9621image=IMG_LoadXPM_RW(rwop);9622if(!image)9623{9624printf("IMG_LoadXPM_RW: %s\n", IMG_GetError());9625// handle error9626}9627</code>9628</example>9629<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9630<seealso cref="M:Tao.Sdl.SdlImage.IMG_isXPM(System.IntPtr)"/>9631<seealso cref="M:Tao.Sdl.SdlImage.IMG_ReadXPMFromArray(System.String[])"/>9632</member>9633<member name="M:Tao.Sdl.SdlImage.IMG_LoadXCF_RW(System.IntPtr)">9634<summary>9635Load a .XCF image.9636</summary>9637<param name="src">9638The XCF image is loaded from this9639</param>9640<returns>9641a pointer to the image as a new SDL_Surface.9642NULL is returned on errors, like if XCF is not supported,9643or a read error.9644</returns>9645<remarks>9646Load src as a XCF image for use as a surface,9647if XCF support is compiled into the SDL_image library.9648<p>Binds to C-function in SDL_image.h9649<code>9650SDL_Surface *IMG_LoadXCF_RW(SDL_RWops *src)9651</code>9652</p>9653</remarks>9654<example>9655<code>9656// load sample.xcf into image9657SDL_Surface *image;9658SDL_RWops *rwop;9659rwop=SDL_RWFromFile("sample.xcf", "rb");9660image=IMG_LoadXCF_RW(rwop);9661if(!image)9662{9663printf("IMG_LoadXCF_RW: %s\n", IMG_GetError());9664// handle error9665}9666</code>9667</example>9668<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9669<seealso cref="M:Tao.Sdl.SdlImage.IMG_isXCF(System.IntPtr)"/>9670</member>9671<member name="M:Tao.Sdl.SdlImage.IMG_LoadXV_RW(System.IntPtr)">9672<summary>9673Load a .XV image.9674</summary>9675<param name="src">9676The XV image is loaded from this9677</param>9678<returns>9679a pointer to the image as a new SDL_Surface.9680NULL is returned on errors, like if XV is not supported,9681or a read error.9682</returns>9683<remarks>9684Load src as a XV image for use as a surface,9685if XV support is compiled into the SDL_image library.9686<p>Binds to C-function in SDL_image.h9687<code>9688SDL_Surface *IMG_LoadXV_RW(SDL_RWops *src)9689</code>9690</p>9691</remarks>9692<example>9693<code>9694// load sample.xv into image9695SDL_Surface *image;9696SDL_RWops *rwop;9697rwop=SDL_RWFromFile("sample.xv", "rb");9698image=IMG_LoadXV_RW(rwop);9699if(!image)9700{9701printf("IMG_LoadXV_RW: %s\n", IMG_GetError());9702// handle error9703}9704</code>9705</example>9706<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9707<seealso cref="M:Tao.Sdl.SdlImage.IMG_isXV(System.IntPtr)"/>9708</member>9709<member name="M:Tao.Sdl.SdlImage.IMG_LoadPCX_RW(System.IntPtr)">9710<summary>9711Load a .PCX image.9712</summary>9713<param name="src">9714The PCX image is loaded from this9715</param>9716<returns>9717a pointer to the image as a new SDL_Surface.9718NULL is returned on errors, like if PCX is not supported,9719or a read error.9720</returns>9721<remarks>9722Load src as a PCX image for use as a surface,9723if PCX support is compiled into the SDL_image library.9724<p>Binds to C-function in SDL_image.h9725<code>9726SDL_Surface *IMG_LoadPCX_RW(SDL_RWops *src)9727</code>9728</p>9729</remarks>9730<example>9731<code>9732// load sample.pcx into image9733SDL_Surface *image;9734SDL_RWops *rwop;9735rwop=SDL_RWFromFile("sample.pcx", "rb");9736image=IMG_LoadPCX_RW(rwop);9737if(!image)9738{9739printf("IMG_LoadPCX_RW: %s\n", IMG_GetError());9740// handle error9741}9742</code>9743</example>9744<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9745<seealso cref="M:Tao.Sdl.SdlImage.IMG_isPCX(System.IntPtr)"/>9746</member>9747<member name="M:Tao.Sdl.SdlImage.IMG_LoadGIF_RW(System.IntPtr)">9748<summary>9749Load a .GIF image.9750</summary>9751<param name="src">9752The GIF image is loaded from this9753</param>9754<returns>9755a pointer to the image as a new SDL_Surface.9756NULL is returned on errors, like if GIF is not supported,9757or a read error.9758</returns>9759<remarks>9760Load src as a GIF image for use as a surface,9761if GIF support is compiled into the SDL_image library.9762<p>Binds to C-function in SDL_image.h9763<code>9764SDL_Surface *IMG_LoadGIF_RW(SDL_RWops *src)9765</code></p>9766</remarks>9767<example>9768<code>9769// load sample.gif into image9770SDL_Surface *image;9771SDL_RWops *rwop;9772rwop=SDL_RWFromFile("sample.gif", "rb");9773image=IMG_LoadGIF_RW(rwop);9774if(!image)9775{9776printf("IMG_LoadGIF_RW: %s\n", IMG_GetError());9777// handle error9778}9779</code>9780</example>9781<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9782<seealso cref="M:Tao.Sdl.SdlImage.IMG_isGIF(System.IntPtr)"/>9783</member>9784<member name="M:Tao.Sdl.SdlImage.IMG_LoadJPG_RW(System.IntPtr)">9785<summary>9786Load a .JPG image.9787</summary>9788<param name="src">9789The JPG image is loaded from this9790</param>9791<returns>9792a pointer to the image as a new SDL_Surface.9793NULL is returned on errors, like if JPG is not supported,9794or a read error.9795</returns>9796<remarks>9797Load src as a JPG image for use as a surface,9798if JPG support is compiled into the SDL_image library.9799<p>Binds to C-function in SDL_image.h9800<code>9801SDL_Surface *IMG_LoadJPG_RW(SDL_RWops *src)9802</code>9803</p>9804</remarks>9805<example>9806<code>9807// load sample.jpg into image9808SDL_Surface *image;9809SDL_RWops *rwop;9810rwop=SDL_RWFromFile("sample.jpg", "rb");9811image=IMG_LoadJPG_RW(rwop);9812if(!image)9813{9814printf("IMG_LoadJPG_RW: %s\n", IMG_GetError());9815// handle error9816}9817</code>9818</example>9819<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9820<seealso cref="M:Tao.Sdl.SdlImage.IMG_isJPG(System.IntPtr)"/>9821</member>9822<member name="M:Tao.Sdl.SdlImage.IMG_LoadTIF_RW(System.IntPtr)">9823<summary>9824Load a .TIF image.9825</summary>9826<param name="src">9827The TIF image is loaded from this9828</param>9829<returns>9830a pointer to the image as a new SDL_Surface.9831NULL is returned on errors, like if TIF is not supported,9832or a read error.9833</returns>9834<remarks>9835Load src as a TIF image for use as a surface,9836if TIF support is compiled into the SDL_image library.9837<p>Binds to C-function in SDL_image.h9838<code>9839SDL_Surface *IMG_LoadTIF_RW(SDL_RWops *src)9840</code>9841</p>9842</remarks>9843<example>9844<code>9845// load sample.tif into image9846SDL_Surface *image;9847SDL_RWops *rwop;9848rwop=SDL_RWFromFile("sample.tif", "rb");9849image=IMG_LoadTIF_RW(rwop);9850if(!image)9851{9852printf("IMG_LoadTIF_RW: %s\n", IMG_GetError());9853// handle error9854}9855</code>9856</example>9857<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9858<seealso cref="M:Tao.Sdl.SdlImage.IMG_isTIF(System.IntPtr)"/>9859</member>9860<member name="M:Tao.Sdl.SdlImage.IMG_LoadPNG_RW(System.IntPtr)">9861<summary>9862Load a .PNG image.9863</summary>9864<param name="src">9865The PNG image is loaded from this9866</param>9867<returns>9868a pointer to the image as a new SDL_Surface.9869NULL is returned on errors, like if PNG is not supported,9870or a read error.9871</returns>9872<remarks>9873Load src as a PNG image for use as a surface,9874if PNG support is compiled into the SDL_image library.9875<p>Binds to C-function in SDL_image.h9876<code>9877SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src)9878</code>9879</p>9880</remarks>9881<example>9882<code>9883// load sample.png into image9884SDL_Surface *image;9885SDL_RWops *rwop;9886rwop=SDL_RWFromFile("sample.png", "rb");9887image=IMG_LoadPNG_RW(rwop);9888if(!image)9889{9890printf("IMG_LoadPNG_RW: %s\n", IMG_GetError());9891// handle error9892}9893</code>9894</example>9895<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9896<seealso cref="M:Tao.Sdl.SdlImage.IMG_isPNG(System.IntPtr)"/>9897</member>9898<member name="M:Tao.Sdl.SdlImage.IMG_LoadTGA_RW(System.IntPtr)">9899<summary>9900Load a .TGA image.9901</summary>9902<param name="src">9903The BMP image is loaded from this9904</param>9905<returns>9906a pointer to the image as a new SDL_Surface.9907NULL is returned on errors, like if BMP is not supported,9908or a read error.9909</returns>9910<remarks>9911Load src as a TGA image for use as a surface,9912if TGA support is compiled into the SDL_image library.9913If you try to load a non TGA image,9914you might succeed even when it's not TGA image formatted data,9915this is because the TGA has no magic,9916which is a way of identifying a filetype from a9917signature in it's contents. So be careful with this.9918<p>Binds to C-function in SDL_image.h9919<code>SDL_Surface *IMG_LoadTGA_RW(SDL_RWops *src)9920</code></p>9921</remarks>9922<example>9923<code>9924// load sample.tga into image9925SDL_Surface *image;9926SDL_RWops *rwop;9927rwop=SDL_RWFromFile("sample.tga", "rb");9928image=IMG_LoadTGA_RW(rwop);9929if(!image)9930{9931printf("IMG_LoadTGA_RW: %s\n", IMG_GetError());9932// handle error9933}9934</code>9935</example>9936<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9937</member>9938<member name="M:Tao.Sdl.SdlImage.IMG_LoadLBM_RW(System.IntPtr)">9939<summary>9940Load a .LBM image.9941</summary>9942<param name="src">9943The LBM image is loaded from this9944</param>9945<returns>9946a pointer to the image as a new SDL_Surface.9947NULL is returned on errors, like if LBM is not supported,9948or a read error.9949</returns>9950<remarks>9951Load src as a LBM image for use as a surface,9952if LBM support is compiled into the SDL_image library.9953<p>Binds to C-function in SDL_image.h9954<code>9955SDL_Surface *IMG_LoadLBM_RW(SDL_RWops *src)9956</code>9957</p>9958</remarks>9959<example>9960<code>9961// load sample.lbm into image9962SDL_Surface *image;9963SDL_RWops *rwop;9964rwop=SDL_RWFromFile("sample.lbm", "rb");9965image=IMG_LoadLBM_RW(rwop);9966if(!image)9967{9968printf("IMG_LoadLBM_RW: %s\n", IMG_GetError());9969// handle error9970}9971</code>9972</example>9973<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadTyped_RW(System.IntPtr,System.Int32,System.String)"/>9974<seealso cref="M:Tao.Sdl.SdlImage.IMG_isLBM(System.IntPtr)"/>9975</member>9976<member name="M:Tao.Sdl.SdlImage.IMG_ReadXPMFromArray(System.String[])">9977<summary>9978Load a .XPM image from an array.9979</summary>9980<param name="src">9981The source xpm data. The XPM image is loaded from this.9982</param>9983<returns>9984a pointer to the image as a new SDL_Surface.9985NULL is returned on errors, like if XPM is not supported,9986or a read error.9987</returns>9988<remarks>9989Load src as a XPM image for use as a surface,9990if XPM support is compiled into the SDL_image library.9991<p>Binds to C-function in SDL_image.h9992<code>9993SDL_Surface *IMG_ReadXPMFromArray(char **xpm)9994</code>9995</p>9996</remarks>9997<example>9998<code>9999// load sample.xpm into image10000#include "sample.xpm"10001SDL_Surface *image;10002image=IMG_ReadXPMFromArray(sample_xpm);10003if(!image)10004{10005printf("IMG_ReadXPMFromArray: %s\n", IMG_GetError());10006// handle error10007}10008</code></example>10009<seealso cref="M:Tao.Sdl.SdlImage.IMG_LoadXPM_RW(System.IntPtr)"/>10010</member>10011<member name="M:Tao.Sdl.SdlImage.IMG_SetError(System.String)">10012<summary>10013Set the current error string10014</summary>10015<remarks>10016This is the same as SDL_SetError, which sets the error string10017which may be fetched with IMG_GetError (or SDL_GetError).10018This functions acts like printf, except that it is limited10019to SDL_ERRBUFIZE(1024) chars in length. It only accepts the10020following format types: %s, %d, %f, %p. No variations are10021supported, like %.2f would not work. For any more specifics10022read the SDL docs.10023<p>Binds to C-function in SDL_image.h10024<code>10025void IMG_SetError(const char *fmt, ...)10026</code>10027</p>10028</remarks>10029<example>10030<code>10031int myimagefunc(int i) {10032IMG_SetError("myimagefunc is not implemented! %d was passed in.",i);10033return(-1);10034}10035</code></example>10036<param name="message"></param>10037<seealso cref="M:Tao.Sdl.SdlImage.IMG_GetError"/>10038</member>10039<member name="M:Tao.Sdl.SdlImage.IMG_GetError">10040<summary>10041Get the current error string10042</summary>10043<remarks>10044This is the same as SDL_GetError, which returns the last10045error set as a string which you may use to tell the user10046what happened when an error status has been returned from10047an SDL_image function call.10048<p>Binds to C-function in SDL_image.h10049<code>10050char *IMG_GetError()10051</code>10052</p>10053</remarks>10054<returns>10055a char pointer (string) containing a humam10056readable version or the reason for the last error that10057occured.10058</returns>10059<seealso cref="M:Tao.Sdl.SdlImage.IMG_SetError(System.String)"/>10060</member>10061<member name="T:Tao.Sdl.Sdl">10062<summary>10063Simple DirectMedia Layer binding for .NET, implementing SDL 1.2.13.10064</summary>10065<remarks>10066This library is designed to make it easy to write games that run10067the .NET runtime using the various native high-performance media10068interfaces, (for video, audio, etc) and presenting a single10069source-code level API to your application. This is a fairly10070low level API, but using this, completely portable applications10071can be written with a great deal of flexibility.10072<p>An introduction to SDL can be found online at: http://www.libsdl.org/intro/ </p>10073<p>Binds to functions and definitions in SDL.dll or libSDL.so.</p>10074</remarks>10075</member>10076<member name="F:Tao.Sdl.Sdl.SDL_NATIVE_LIBRARY">10077<summary>10078Specifies SDL's native library archive.10079</summary>10080<remarks>10081Specifies SDL.dll everywhere; will be mapped via .config for mono.10082</remarks>10083</member>10084<member name="F:Tao.Sdl.Sdl.CALLING_CONVENTION">10085<summary>10086Specifies the calling convention.10087</summary>10088<remarks>10089Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl"/>10090for Windows and Linux.10091</remarks>10092</member>10093<member name="F:Tao.Sdl.Sdl.SDL_INIT_TIMER">10094<summary>10095The timer subsystem.10096</summary>10097</member>10098<member name="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO">10099<summary>10100The audio subsystem.10101</summary>10102</member>10103<member name="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO">10104<summary>10105The video subsystem.10106</summary>10107</member>10108<member name="F:Tao.Sdl.Sdl.SDL_INIT_CDROM">10109<summary>10110The CD-ROM subsystem.10111</summary>10112</member>10113<member name="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK">10114<summary>10115The joystick subsystem.10116</summary>10117</member>10118<member name="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE">10119<summary>10120Prevents SDL from catching fatal signals.10121</summary>10122</member>10123<member name="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD">10124<summary>10125Not supported on all OS's.10126</summary>10127</member>10128<member name="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING">10129<summary>10130All subsystems.10131These are the flags which may be passed to SDL_Init()10132-- you should specify the subsystems which you will be10133using in your application..10134</summary>10135</member>10136<member name="F:Tao.Sdl.Sdl.SDL_APPMOUSEFOCUS">10137<summary>10138The app has mouse coverage10139</summary>10140<remarks>10141The available application states10142</remarks>10143</member>10144<member name="F:Tao.Sdl.Sdl.SDL_APPINPUTFOCUS">10145<summary>10146The app has input focus10147</summary>10148<remarks>10149The available application states10150</remarks>10151</member>10152<member name="F:Tao.Sdl.Sdl.SDL_APPACTIVE">10153<summary>10154The application is active10155</summary>10156<remarks>10157The available application states10158</remarks>10159</member>10160<member name="F:Tao.Sdl.Sdl.AUDIO_U8">10161<summary>10162Unsigned 8-bit samples.10163</summary>10164</member>10165<member name="F:Tao.Sdl.Sdl.AUDIO_S8">10166<summary>10167Signed 8-bit samples.10168</summary>10169</member>10170<member name="F:Tao.Sdl.Sdl.AUDIO_U16LSB">10171<summary>10172Unsigned 16-bit little-endian samples.10173</summary>10174</member>10175<member name="F:Tao.Sdl.Sdl.AUDIO_S16LSB">10176<summary>10177Signed 16-bit little-endian samples10178</summary>10179</member>10180<member name="F:Tao.Sdl.Sdl.AUDIO_U16MSB">10181<summary>10182Unsigned 16-bit big-endian samples10183</summary>10184</member>10185<member name="F:Tao.Sdl.Sdl.AUDIO_S16MSB">10186<summary>10187Signed 16-bit big-endian samples10188</summary>10189</member>10190<member name="F:Tao.Sdl.Sdl.SDL_MIX_MAXVOLUME">10191<summary>10192Full audio volume10193</summary>10194</member>10195<member name="F:Tao.Sdl.Sdl.SDL_MAX_TRACKS">10196<summary>10197The maximum number of CD-ROM tracks on a disk10198</summary>10199</member>10200<member name="F:Tao.Sdl.Sdl.SDL_AUDIO_TRACK">10201<summary>10202The types of CD-ROM track possible10203</summary>10204</member>10205<member name="F:Tao.Sdl.Sdl.SDL_DATA_TRACK">10206<summary>10207The types of CD-ROM track possible10208</summary>10209</member>10210<member name="F:Tao.Sdl.Sdl.CD_FPS">10211<summary>10212Frames per second.10213</summary>10214</member>10215<member name="F:Tao.Sdl.Sdl.SDL_LIL_ENDIAN">10216<summary>10217Little Endian10218</summary>10219<remarks>10220e.g. i386 machines</remarks>10221</member>10222<member name="F:Tao.Sdl.Sdl.SDL_BIG_ENDIAN">10223<summary>10224Big Endian10225</summary>10226<remarks>10227e.g. Macs10228</remarks>10229</member>10230<member name="F:Tao.Sdl.Sdl.SDL_PRESSED">10231<summary>10232Button in pressed state.10233</summary>10234<remarks>10235SDL_events.h defines SDL_PRESSED and <see cref="F:Tao.Sdl.Sdl.SDL_RELEASED"/>10236in a nameless enum. Defining SDL_PRESSED as a const works10237better for Tao.SDL purposes</remarks>10238<seealso cref="F:Tao.Sdl.Sdl.SDL_RELEASED"/>10239</member>10240<member name="F:Tao.Sdl.Sdl.SDL_RELEASED">10241<summary>10242Button in released state.10243</summary>10244<remarks>10245SDL_events.h defines <see cref="F:Tao.Sdl.Sdl.SDL_PRESSED"/> and SDL_RELEASED10246in a nameless enum. Defining SDL_RELEASED as a const works10247better for Tao.SDL purposes</remarks>10248<seealso cref="F:Tao.Sdl.Sdl.SDL_PRESSED"/>10249</member>10250<member name="F:Tao.Sdl.Sdl.SDL_ALLEVENTS">10251<summary>10252This is the mask which refers to all hotkey bindings.10253</summary>10254</member>10255<member name="F:Tao.Sdl.Sdl.SDL_QUERY">10256<summary>10257If 'state' is set to SDL_QUERY, SDL_EventState()10258will return the10259current processing state of the specified event.10260</summary>10261</member>10262<member name="F:Tao.Sdl.Sdl.SDL_IGNORE">10263<summary>10264If 'state' is set to SDL_IGNORE, that event will be10265automatically dropped10266from the event queue and will not event be filtered.10267</summary>10268</member>10269<member name="F:Tao.Sdl.Sdl.SDL_DISABLE">10270<summary>1027110272</summary>10273</member>10274<member name="F:Tao.Sdl.Sdl.SDL_ENABLE">10275<summary>10276If 'state' is set to SDL_ENABLE, that event will10277be processed normally.10278</summary>10279</member>10280<member name="F:Tao.Sdl.Sdl.SDL_HAT_CENTERED">10281<summary>10282Indicates which position a joystick hat is pressed in10283</summary>10284</member>10285<member name="F:Tao.Sdl.Sdl.SDL_HAT_UP">10286<summary>1028710288</summary>10289</member>10290<member name="F:Tao.Sdl.Sdl.SDL_HAT_RIGHT">10291<summary>1029210293</summary>10294</member>10295<member name="F:Tao.Sdl.Sdl.SDL_HAT_DOWN">10296<summary>1029710298</summary>10299</member>10300<member name="F:Tao.Sdl.Sdl.SDL_HAT_LEFT">10301<summary>1030210303</summary>10304</member>10305<member name="F:Tao.Sdl.Sdl.SDL_HAT_RIGHTUP">10306<summary>1030710308</summary>10309</member>10310<member name="F:Tao.Sdl.Sdl.SDL_HAT_RIGHTDOWN">10311<summary>1031210313</summary>10314</member>10315<member name="F:Tao.Sdl.Sdl.SDL_HAT_LEFTUP">10316<summary>1031710318</summary>10319</member>10320<member name="F:Tao.Sdl.Sdl.SDL_HAT_LEFTDOWN">10321<summary>1032210323</summary>10324</member>10325<member name="F:Tao.Sdl.Sdl.SDL_ALL_HOTKEYS">10326<summary>10327This is the mask which refers to all hotkey bindings.10328</summary>10329</member>10330<member name="F:Tao.Sdl.Sdl.SDL_DEFAULT_REPEAT_DELAY">10331<summary>10332Enable/Disable keyboard repeat. Keyboard repeat defaults to off.10333'delay' is the initial delay in ms between the time10334when a key is pressed,10335and keyboard repeat begins.10336</summary>10337<seealso cref="M:Tao.Sdl.Sdl.SDL_EnableKeyRepeat(System.Int32,System.Int32)"/>10338</member>10339<member name="F:Tao.Sdl.Sdl.SDL_DEFAULT_REPEAT_INTERVAL">10340<summary>10341Enable/Disable keyboard repeat. Keyboard repeat defaults to off.10342'interval' is the time in ms between keyboard repeat events.10343</summary>10344<seealso cref="M:Tao.Sdl.Sdl.SDL_EnableKeyRepeat(System.Int32,System.Int32)"/>10345</member>10346<member name="F:Tao.Sdl.Sdl.KMOD_CTRL">10347<summary>10348Both CTRL keys.10349</summary>10350</member>10351<member name="F:Tao.Sdl.Sdl.KMOD_SHIFT">10352<summary>10353Both SHIFT keys.10354</summary>10355</member>10356<member name="F:Tao.Sdl.Sdl.KMOD_ALT">10357<summary>10358Both ALT keys.10359</summary>10360</member>10361<member name="F:Tao.Sdl.Sdl.KMOD_META">10362<summary>10363Both META keys.10364</summary>10365</member>10366<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_LEFT">10367<summary>10368Used as a mask when testing buttons in buttonstate10369Button 1: Left mouse button10370</summary>10371</member>10372<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_MIDDLE">10373<summary>10374Button 2: Middle mouse button10375</summary>10376</member>10377<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_RIGHT">10378<summary>10379Button 3: Right mouse button10380</summary>10381</member>10382<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_WHEELUP">10383<summary>10384Button 4: Mouse wheel up (may also be a real button)10385</summary>10386</member>10387<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_WHEELDOWN">10388<summary>10389Button 5: Mouse wheel down (may also be a real button)10390</summary>10391</member>10392<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_X1">10393<summary>1039410395</summary>10396</member>10397<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_X2">10398<summary>1039910400</summary>10401</member>10402<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_LMASK">10403<summary>1040410405</summary>10406</member>10407<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_MMASK">10408<summary>1040910410</summary>10411</member>10412<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_RMASK">10413<summary>1041410415</summary>10416</member>10417<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_X1MASK">10418<summary>1041910420</summary>10421</member>10422<member name="F:Tao.Sdl.Sdl.SDL_BUTTON_X2MASK">10423<summary>1042410425</summary>10426</member>10427<member name="F:Tao.Sdl.Sdl.SDL_MUTEX_TIMEDOUT">10428<summary>10429Synchronization functions which can time out return this value10430if they time out.10431</summary>10432</member>10433<member name="F:Tao.Sdl.Sdl.SDL_MUTEX_MAXWAIT">10434<summary>10435This is the timeout value which corresponds to never time out10436</summary>10437</member>10438<member name="F:Tao.Sdl.Sdl.RW_SEEK_SET">10439<summary>10440Seek from the beginning of data10441</summary>10442</member>10443<member name="F:Tao.Sdl.Sdl.RW_SEEK_CUR">10444<summary>10445Seek relative to current read point10446</summary>10447</member>10448<member name="F:Tao.Sdl.Sdl.RW_SEEK_END">10449<summary>10450Seek relative to the end of data10451</summary>10452</member>10453<member name="F:Tao.Sdl.Sdl.SDL_TIMESLICE">10454<summary>10455The OS scheduler timeslice, in milliseconds.10456</summary>10457</member>10458<member name="F:Tao.Sdl.Sdl.TIMER_RESOLUTION">10459<summary>10460The maximum resolution of the SDL timer on all platforms.10461</summary>10462<remarks>10463Experimentally determined.10464</remarks>10465</member>10466<member name="F:Tao.Sdl.Sdl.SDL_MAJOR_VERSION">10467<summary>10468Major Version10469</summary>10470</member>10471<member name="F:Tao.Sdl.Sdl.SDL_MINOR_VERSION">10472<summary>10473Minor Version10474</summary>10475</member>10476<member name="F:Tao.Sdl.Sdl.SDL_PATCHLEVEL">10477<summary>10478Patch Version10479</summary>10480</member>10481<member name="F:Tao.Sdl.Sdl.SDL_ALPHA_OPAQUE">10482<summary>10483Transparency definition of Opaque10484</summary>10485<remarks>10486Define alpha as the opacity of a surface10487</remarks>10488</member>10489<member name="F:Tao.Sdl.Sdl.SDL_ALPHA_TRANSPARENT">10490<summary>10491Transparency definition of Transparent10492</summary>10493<remarks>10494Define alpha as the opacity of a surface10495</remarks>10496</member>10497<member name="F:Tao.Sdl.Sdl.SDL_SWSURFACE">10498<summary>10499Surface is in system memory10500</summary>10501</member>10502<member name="F:Tao.Sdl.Sdl.SDL_HWSURFACE">10503<summary>10504Surface is in video memory10505</summary>10506</member>10507<member name="F:Tao.Sdl.Sdl.SDL_ASYNCBLIT">10508<summary>10509Use asynchronous blits if possible10510</summary>10511</member>10512<member name="F:Tao.Sdl.Sdl.SDL_ANYFORMAT">10513<summary>10514Allow any video depth/pixel-format10515</summary>10516</member>10517<member name="F:Tao.Sdl.Sdl.SDL_HWPALETTE">10518<summary>10519Surface has exclusive palette10520</summary>10521</member>10522<member name="F:Tao.Sdl.Sdl.SDL_DOUBLEBUF">10523<summary>10524Set up double-buffered video mode10525</summary>10526</member>10527<member name="F:Tao.Sdl.Sdl.SDL_FULLSCREEN">10528<summary>10529Full screen display surface.10530</summary>10531</member>10532<member name="F:Tao.Sdl.Sdl.SDL_OPENGL">10533<summary>10534Create an OpenGL rendering context10535</summary>10536</member>10537<member name="F:Tao.Sdl.Sdl.SDL_OPENGLBLIT">10538<summary>10539Create an OpenGL rendering context and use it for blitting10540</summary>10541</member>10542<member name="F:Tao.Sdl.Sdl.SDL_RESIZABLE">10543<summary>10544This video mode may be resized10545</summary>10546</member>10547<member name="F:Tao.Sdl.Sdl.SDL_NOFRAME">10548<summary>10549No window caption or edge frame10550</summary>10551</member>10552<member name="F:Tao.Sdl.Sdl.SDL_HWACCEL">10553<summary>10554Blit uses hardware acceleration10555</summary>10556</member>10557<member name="F:Tao.Sdl.Sdl.SDL_SRCCOLORKEY">10558<summary>10559Blit uses a source color key10560</summary>10561</member>10562<member name="F:Tao.Sdl.Sdl.SDL_RLEACCELOK">10563<summary>10564Private flag10565</summary>10566</member>10567<member name="F:Tao.Sdl.Sdl.SDL_RLEACCEL">10568<summary>10569Surface is RLE encoded10570</summary>10571</member>10572<member name="F:Tao.Sdl.Sdl.SDL_SRCALPHA">10573<summary>10574Blit uses source alpha blending10575</summary>10576</member>10577<member name="F:Tao.Sdl.Sdl.SDL_PREALLOC">10578<summary>10579Surface uses preallocated memory10580</summary>10581</member>10582<member name="F:Tao.Sdl.Sdl.SDL_YV12_OVERLAY">10583<summary>10584One of the most common video overlay formats.10585For an explanation of these pixel formats, see:10586http://www.webartz.com/fourcc/indexyuv.htm1058710588For information on the relationship between color spaces, see:10589http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html1059010591Planar mode: Y + V + U (3 planes)10592</summary>10593</member>10594<member name="F:Tao.Sdl.Sdl.SDL_IYUV_OVERLAY">10595<summary>10596One of the most common video overlay formats.10597For an explanation of these pixel formats, see:10598http://www.webartz.com/fourcc/indexyuv.htm1059910600For information on the relationship between color spaces, see:10601http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html1060210603Planar mode: Y + U + V (3 planes)10604</summary>10605</member>10606<member name="F:Tao.Sdl.Sdl.SDL_YUY2_OVERLAY">10607<summary>10608One of the most common video overlay formats.10609For an explanation of these pixel formats, see:10610http://www.webartz.com/fourcc/indexyuv.htm1061110612For information on the relationship between color spaces, see:10613http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html1061410615Packed mode: Y0+U0+Y1+V0 (1 plane)10616</summary>10617</member>10618<member name="F:Tao.Sdl.Sdl.SDL_UYVY_OVERLAY">10619<summary>10620One of the most common video overlay formats.10621For an explanation of these pixel formats, see:10622http://www.webartz.com/fourcc/indexyuv.htm1062310624For information on the relationship between color spaces, see:10625http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html1062610627Packed mode: U0+Y0+V0+Y1 (1 plane)10628</summary>10629</member>10630<member name="F:Tao.Sdl.Sdl.SDL_YVYU_OVERLAY">10631<summary>10632One of the most common video overlay formats.10633For an explanation of these pixel formats, see:10634http://www.webartz.com/fourcc/indexyuv.htm1063510636For information on the relationship between color spaces, see:10637http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html1063810639Packed mode: Y0+V0+Y1+U0 (1 plane)10640</summary>10641</member>10642<member name="F:Tao.Sdl.Sdl.SDL_LOGPAL">10643<summary>10644Flag for SDL_SetPalette() which represents a logical palette, which controls how blits10645are mapped to/from the surface.10646</summary>10647</member>10648<member name="F:Tao.Sdl.Sdl.SDL_PHYSPAL">10649<summary>10650Flag for SDL_SetPalette() which represents a physical palette, which controls how pixels10651look on the screen.10652</summary>10653</member>10654<member name="F:Tao.Sdl.Sdl.SDL_AUDIO_STOPPED">10655<summary>10656SDL_audiostatus. Get the current audio state10657</summary>10658</member>10659<member name="F:Tao.Sdl.Sdl.SDL_AUDIO_PLAYING">10660<summary>10661SDL_audiostatus. Get the current audio state10662</summary>10663</member>10664<member name="F:Tao.Sdl.Sdl.SDL_AUDIO_PAUSED">10665<summary>10666SDL_audiostatus. Get the current audio state10667</summary>10668</member>10669<member name="F:Tao.Sdl.Sdl.CD_TRAYEMPTY">10670<summary>10671The CD tray is empty.10672</summary>10673<remarks>10674CDstatus enum.10675The possible states which a CD-ROM drive can be in.10676</remarks>10677</member>10678<member name="F:Tao.Sdl.Sdl.CD_STOPPED">10679<summary>10680The CD has stopped playing.10681</summary>10682<remarks>10683CDstatus enum.10684The possible states which a CD-ROM drive can be in.10685</remarks>10686</member>10687<member name="F:Tao.Sdl.Sdl.CD_PLAYING">10688<summary>10689The CD is playing.10690</summary>10691<remarks>10692CDstatus enum.10693The possible states which a CD-ROM drive can be in.10694</remarks>10695</member>10696<member name="F:Tao.Sdl.Sdl.CD_PAUSED">10697<summary>10698The CD has been paused.10699</summary>10700<remarks>10701CDstatus enum.10702The possible states which a CD-ROM drive can be in.10703</remarks>10704</member>10705<member name="F:Tao.Sdl.Sdl.CD_ERROR">10706<summary>10707An error occured while getting the status.10708</summary>10709<remarks>10710CDstatus enum.10711The possible states which a CD-ROM drive can be in.10712</remarks>10713</member>10714<member name="F:Tao.Sdl.Sdl.SDL_NOEVENT">10715<summary>10716Unused (do not remove)10717</summary>10718</member>10719<member name="F:Tao.Sdl.Sdl.SDL_ACTIVEEVENT">10720<summary>10721Application loses/gains visibility10722</summary>10723</member>10724<member name="F:Tao.Sdl.Sdl.SDL_KEYDOWN">10725<summary>10726Keys pressed10727</summary>10728</member>10729<member name="F:Tao.Sdl.Sdl.SDL_KEYUP">10730<summary>10731Keys released10732</summary>10733</member>10734<member name="F:Tao.Sdl.Sdl.SDL_MOUSEMOTION">10735<summary>10736Mouse moved10737</summary>10738</member>10739<member name="F:Tao.Sdl.Sdl.SDL_MOUSEBUTTONDOWN">10740<summary>10741Mouse button pressed10742</summary>10743</member>10744<member name="F:Tao.Sdl.Sdl.SDL_MOUSEBUTTONUP">10745<summary>10746Mouse button released10747</summary>10748</member>10749<member name="F:Tao.Sdl.Sdl.SDL_JOYAXISMOTION">10750<summary>10751Joystick axis motion10752</summary>10753</member>10754<member name="F:Tao.Sdl.Sdl.SDL_JOYBALLMOTION">10755<summary>10756Joystick trackball motion10757</summary>10758</member>10759<member name="F:Tao.Sdl.Sdl.SDL_JOYHATMOTION">10760<summary>10761Joystick hat position change10762</summary>10763</member>10764<member name="F:Tao.Sdl.Sdl.SDL_JOYBUTTONDOWN">10765<summary>10766Joystick button pressed10767</summary>10768</member>10769<member name="F:Tao.Sdl.Sdl.SDL_JOYBUTTONUP">10770<summary>10771Joystick button released10772</summary>10773</member>10774<member name="F:Tao.Sdl.Sdl.SDL_QUIT">10775<summary>10776User-requested quit10777</summary>10778</member>10779<member name="F:Tao.Sdl.Sdl.SDL_SYSWMEVENT">10780<summary>10781System specific event10782</summary>10783</member>10784<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVEDA">10785<summary>10786Reserved for future use..10787</summary>10788</member>10789<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVEDB">10790<summary>10791Reserved for future use..10792</summary>10793</member>10794<member name="F:Tao.Sdl.Sdl.SDL_VIDEORESIZE">10795<summary>10796User resized video mode10797</summary>10798</member>10799<member name="F:Tao.Sdl.Sdl.SDL_VIDEOEXPOSE">10800<summary>10801Screen needs to be redrawn10802</summary>10803</member>10804<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED2">10805<summary>10806Reserved for future use..10807</summary>10808</member>10809<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED3">10810<summary>10811Reserved for future use..10812</summary>10813</member>10814<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED4">10815<summary>10816Reserved for future use..10817</summary>10818</member>10819<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED5">10820<summary>10821Reserved for future use..10822</summary>10823</member>10824<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED6">10825<summary>10826Reserved for future use..10827</summary>10828</member>10829<member name="F:Tao.Sdl.Sdl.SDL_EVENT_RESERVED7">10830<summary>10831Reserved for future use..10832</summary>10833</member>10834<member name="F:Tao.Sdl.Sdl.SDL_USEREVENT">10835<summary>10836Events SDL_USEREVENT through SDL_MAXEVENTS-1 are10837for your use.10838</summary>10839</member>10840<member name="F:Tao.Sdl.Sdl.SDL_NUMEVENTS">10841<summary>10842This last event is only for bounding internal arrays10843It is the number of bits in the event mask datatype -- Uint3210844</summary>10845</member>10846<member name="F:Tao.Sdl.Sdl.SDL_ACTIVEEVENTMASK">10847<summary>1084810849</summary>10850</member>10851<member name="F:Tao.Sdl.Sdl.SDL_KEYDOWNMASK">10852<summary>1085310854</summary>10855</member>10856<member name="F:Tao.Sdl.Sdl.SDL_KEYUPMASK">10857<summary>1085810859</summary>10860</member>10861<member name="F:Tao.Sdl.Sdl.SDL_KEYEVENTMASK">10862<summary>1086310864</summary>10865</member>10866<member name="F:Tao.Sdl.Sdl.SDL_MOUSEMOTIONMASK">10867<summary>1086810869</summary>10870</member>10871<member name="F:Tao.Sdl.Sdl.SDL_MOUSEBUTTONDOWNMASK">10872<summary>1087310874</summary>10875</member>10876<member name="F:Tao.Sdl.Sdl.SDL_MOUSEBUTTONUPMASK">10877<summary>1087810879</summary>10880</member>10881<member name="F:Tao.Sdl.Sdl.SDL_MOUSEEVENTMASK">10882<summary>1088310884</summary>10885</member>10886<member name="F:Tao.Sdl.Sdl.SDL_JOYAXISMOTIONMASK">10887<summary>1088810889</summary>10890</member>10891<member name="F:Tao.Sdl.Sdl.SDL_JOYBALLMOTIONMASK">10892<summary>1089310894</summary>10895</member>10896<member name="F:Tao.Sdl.Sdl.SDL_JOYHATMOTIONMASK">10897<summary>1089810899</summary>10900</member>10901<member name="F:Tao.Sdl.Sdl.SDL_JOYBUTTONDOWNMASK">10902<summary>1090310904</summary>10905</member>10906<member name="F:Tao.Sdl.Sdl.SDL_JOYBUTTONUPMASK">10907<summary>1090810909</summary>10910</member>10911<member name="F:Tao.Sdl.Sdl.SDL_JOYEVENTMASK">10912<summary>1091310914</summary>10915</member>10916<member name="F:Tao.Sdl.Sdl.SDL_VIDEORESIZEMASK">10917<summary>1091810919</summary>10920</member>10921<member name="F:Tao.Sdl.Sdl.SDL_VIDEOEXPOSEMASK">10922<summary>1092310924</summary>10925</member>10926<member name="F:Tao.Sdl.Sdl.SDL_QUITMASK">10927<summary>1092810929</summary>10930</member>10931<member name="F:Tao.Sdl.Sdl.SDL_SYSWMEVENTMASK">10932<summary>1093310934</summary>10935</member>10936<member name="F:Tao.Sdl.Sdl.SDL_ADDEVENT">10937<summary>10938If 'action' is SDL_ADDEVENT, up to 'numevents' events will10939be added to the back of the event queue.10940</summary>10941<remarks>10942enum SDL_eventaction.10943Various event types.10944</remarks>10945<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>10946</member>10947<member name="F:Tao.Sdl.Sdl.SDL_PEEKEVENT">10948<summary>10949If 'action' is SDL_PEEKEVENT, up to 'numevents' events at10950the front of the event queue, matching 'mask', will be10951returned and will not be removed from the queue.10952</summary>10953<remarks>10954enum SDL_eventaction.10955Various event types.10956</remarks>10957<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>10958</member>10959<member name="F:Tao.Sdl.Sdl.SDL_GETEVENT">10960<summary>10961If 'action' is SDL_GETEVENT, up to 'numevents' events at10962the front of the event queue, matching 'mask', will be10963returned and will be removed from the queue.10964</summary>10965<remarks>10966enum SDL_eventaction.10967Various event types.10968</remarks>10969<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>10970</member>10971<member name="F:Tao.Sdl.Sdl.SDLK_UNKNOWN">10972<summary>1097310974</summary>10975</member>10976<member name="F:Tao.Sdl.Sdl.SDLK_FIRST">10977<summary>1097810979</summary>10980</member>10981<member name="F:Tao.Sdl.Sdl.SDLK_BACKSPACE">10982<summary>10983backspace. '\b'10984</summary>10985</member>10986<member name="F:Tao.Sdl.Sdl.SDLK_TAB">10987<summary>10988tab. '\t'10989</summary>10990</member>10991<member name="F:Tao.Sdl.Sdl.SDLK_CLEAR">10992<summary>10993clear10994</summary>10995</member>10996<member name="F:Tao.Sdl.Sdl.SDLK_RETURN">10997<summary>10998return. '\r'10999</summary>11000</member>11001<member name="F:Tao.Sdl.Sdl.SDLK_PAUSE">11002<summary>11003pause11004</summary>11005</member>11006<member name="F:Tao.Sdl.Sdl.SDLK_ESCAPE">11007<summary>11008escape. '^['11009</summary>11010</member>11011<member name="F:Tao.Sdl.Sdl.SDLK_SPACE">11012<summary>11013space. ' '11014</summary>11015</member>11016<member name="F:Tao.Sdl.Sdl.SDLK_EXCLAIM">11017<summary>11018exclaim. '!'11019</summary>11020</member>11021<member name="F:Tao.Sdl.Sdl.SDLK_QUOTEDBL">11022<summary>11023quotedbl. '"'11024</summary>11025</member>11026<member name="F:Tao.Sdl.Sdl.SDLK_HASH">11027<summary>11028hash. '#'11029</summary>11030</member>11031<member name="F:Tao.Sdl.Sdl.SDLK_DOLLAR">11032<summary>11033dollar. '$'11034</summary>11035</member>11036<member name="F:Tao.Sdl.Sdl.SDLK_AMPERSAND">11037<summary>11038ampersand. '&'11039</summary>11040</member>11041<member name="F:Tao.Sdl.Sdl.SDLK_QUOTE">11042<summary>11043quote. '''11044</summary>11045</member>11046<member name="F:Tao.Sdl.Sdl.SDLK_LEFTPAREN">11047<summary>11048left parenthesis. '('11049</summary>11050</member>11051<member name="F:Tao.Sdl.Sdl.SDLK_RIGHTPAREN">11052<summary>11053right parenthesis. ')'11054</summary>11055</member>11056<member name="F:Tao.Sdl.Sdl.SDLK_ASTERISK">11057<summary>11058asterisk. '*'11059</summary>11060</member>11061<member name="F:Tao.Sdl.Sdl.SDLK_PLUS">11062<summary>11063plus sign. '+'11064</summary>11065</member>11066<member name="F:Tao.Sdl.Sdl.SDLK_COMMA">11067<summary>11068comma. ';'11069</summary>11070</member>11071<member name="F:Tao.Sdl.Sdl.SDLK_MINUS">11072<summary>11073minus sign. '-'11074</summary>11075</member>11076<member name="F:Tao.Sdl.Sdl.SDLK_PERIOD">11077<summary>11078period. '.'11079</summary>11080</member>11081<member name="F:Tao.Sdl.Sdl.SDLK_SLASH">11082<summary>11083forward slash. '/'11084</summary>11085</member>11086<member name="F:Tao.Sdl.Sdl.SDLK_0">11087<summary>11088011089</summary>11090</member>11091<member name="F:Tao.Sdl.Sdl.SDLK_1">11092<summary>11093111094</summary>11095</member>11096<member name="F:Tao.Sdl.Sdl.SDLK_2">11097<summary>11098211099</summary>11100</member>11101<member name="F:Tao.Sdl.Sdl.SDLK_3">11102<summary>11103311104</summary>11105</member>11106<member name="F:Tao.Sdl.Sdl.SDLK_4">11107<summary>11108411109</summary>11110</member>11111<member name="F:Tao.Sdl.Sdl.SDLK_5">11112<summary>11113511114</summary>11115</member>11116<member name="F:Tao.Sdl.Sdl.SDLK_6">11117<summary>11118611119</summary>11120</member>11121<member name="F:Tao.Sdl.Sdl.SDLK_7">11122<summary>11123711124</summary>11125</member>11126<member name="F:Tao.Sdl.Sdl.SDLK_8">11127<summary>11128811129</summary>11130</member>11131<member name="F:Tao.Sdl.Sdl.SDLK_9">11132<summary>11133911134</summary>11135</member>11136<member name="F:Tao.Sdl.Sdl.SDLK_COLON">11137<summary>11138colon. ':'11139</summary>11140</member>11141<member name="F:Tao.Sdl.Sdl.SDLK_SEMICOLON">11142<summary>11143semicolon. ';'11144</summary>11145</member>11146<member name="F:Tao.Sdl.Sdl.SDLK_LESS">11147<summary>11148less-than sign. '<'11149</summary>11150</member>11151<member name="F:Tao.Sdl.Sdl.SDLK_EQUALS">11152<summary>11153equals sign. '='11154</summary>11155</member>11156<member name="F:Tao.Sdl.Sdl.SDLK_GREATER">11157<summary>11158greater-than sign. '>'11159</summary>11160</member>11161<member name="F:Tao.Sdl.Sdl.SDLK_QUESTION">11162<summary>11163question mark. '?'11164</summary>11165</member>11166<member name="F:Tao.Sdl.Sdl.SDLK_AT">11167<summary>11168at. '@'11169</summary>11170</member>11171<member name="F:Tao.Sdl.Sdl.SDLK_LEFTBRACKET">11172<summary>11173left bracket. '['11174</summary>11175</member>11176<member name="F:Tao.Sdl.Sdl.SDLK_BACKSLASH">11177<summary>11178backslash. '\'11179</summary>11180</member>11181<member name="F:Tao.Sdl.Sdl.SDLK_RIGHTBRACKET">11182<summary>11183right bracket. ']'11184</summary>11185</member>11186<member name="F:Tao.Sdl.Sdl.SDLK_CARET">11187<summary>11188caret. '^'11189</summary>11190</member>11191<member name="F:Tao.Sdl.Sdl.SDLK_UNDERSCORE">11192<summary>11193underscore.'_'11194</summary>11195</member>11196<member name="F:Tao.Sdl.Sdl.SDLK_BACKQUOTE">11197<summary>11198grave. '`'11199</summary>11200</member>11201<member name="F:Tao.Sdl.Sdl.SDLK_a">11202<summary>11203a11204</summary>11205</member>11206<member name="F:Tao.Sdl.Sdl.SDLK_b">11207<summary>11208b11209</summary>11210</member>11211<member name="F:Tao.Sdl.Sdl.SDLK_c">11212<summary>11213c11214</summary>11215</member>11216<member name="F:Tao.Sdl.Sdl.SDLK_d">11217<summary>11218d11219</summary>11220</member>11221<member name="F:Tao.Sdl.Sdl.SDLK_e">11222<summary>11223e11224</summary>11225</member>11226<member name="F:Tao.Sdl.Sdl.SDLK_f">11227<summary>11228f11229</summary>11230</member>11231<member name="F:Tao.Sdl.Sdl.SDLK_g">11232<summary>11233g11234</summary>11235</member>11236<member name="F:Tao.Sdl.Sdl.SDLK_h">11237<summary>11238h11239</summary>11240</member>11241<member name="F:Tao.Sdl.Sdl.SDLK_i">11242<summary>11243i11244</summary>11245</member>11246<member name="F:Tao.Sdl.Sdl.SDLK_j">11247<summary>11248j11249</summary>11250</member>11251<member name="F:Tao.Sdl.Sdl.SDLK_k">11252<summary>11253k11254</summary>11255</member>11256<member name="F:Tao.Sdl.Sdl.SDLK_l">11257<summary>11258l11259</summary>11260</member>11261<member name="F:Tao.Sdl.Sdl.SDLK_m">11262<summary>11263m11264</summary>11265</member>11266<member name="F:Tao.Sdl.Sdl.SDLK_n">11267<summary>11268n11269</summary>11270</member>11271<member name="F:Tao.Sdl.Sdl.SDLK_o">11272<summary>11273o11274</summary>11275</member>11276<member name="F:Tao.Sdl.Sdl.SDLK_p">11277<summary>11278p11279</summary>11280</member>11281<member name="F:Tao.Sdl.Sdl.SDLK_q">11282<summary>11283q11284</summary>11285</member>11286<member name="F:Tao.Sdl.Sdl.SDLK_r">11287<summary>11288r11289</summary>11290</member>11291<member name="F:Tao.Sdl.Sdl.SDLK_s">11292<summary>11293s11294</summary>11295</member>11296<member name="F:Tao.Sdl.Sdl.SDLK_t">11297<summary>11298t11299</summary>11300</member>11301<member name="F:Tao.Sdl.Sdl.SDLK_u">11302<summary>11303u11304</summary>11305</member>11306<member name="F:Tao.Sdl.Sdl.SDLK_v">11307<summary>11308v11309</summary>11310</member>11311<member name="F:Tao.Sdl.Sdl.SDLK_w">11312<summary>11313w11314</summary>11315</member>11316<member name="F:Tao.Sdl.Sdl.SDLK_x">11317<summary>11318x11319</summary>11320</member>11321<member name="F:Tao.Sdl.Sdl.SDLK_y">11322<summary>11323y11324</summary>11325</member>11326<member name="F:Tao.Sdl.Sdl.SDLK_z">11327<summary>11328z11329</summary>11330</member>11331<member name="F:Tao.Sdl.Sdl.SDLK_DELETE">11332<summary>11333delete. '^?'11334</summary>11335</member>11336<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_0">11337<summary>113380xA011339</summary>11340</member>11341<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_1">11342<summary>1134311344</summary>11345</member>11346<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_2">11347<summary>1134811349</summary>11350</member>11351<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_3">11352<summary>1135311354</summary>11355</member>11356<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_4">11357<summary>1135811359</summary>11360</member>11361<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_5">11362<summary>1136311364</summary>11365</member>11366<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_6">11367<summary>1136811369</summary>11370</member>11371<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_7">11372<summary>1137311374</summary>11375</member>11376<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_8">11377<summary>1137811379</summary>11380</member>11381<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_9">11382<summary>1138311384</summary>11385</member>11386<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_10">11387<summary>1138811389</summary>11390</member>11391<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_11">11392<summary>1139311394</summary>11395</member>11396<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_12">11397<summary>1139811399</summary>11400</member>11401<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_13">11402<summary>1140311404</summary>11405</member>11406<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_14">11407<summary>1140811409</summary>11410</member>11411<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_15">11412<summary>1141311414</summary>11415</member>11416<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_16">11417<summary>1141811419</summary>11420</member>11421<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_17">11422<summary>1142311424</summary>11425</member>11426<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_18">11427<summary>1142811429</summary>11430</member>11431<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_19">11432<summary>1143311434</summary>11435</member>11436<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_20">11437<summary>1143811439</summary>11440</member>11441<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_21">11442<summary>1144311444</summary>11445</member>11446<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_22">11447<summary>1144811449</summary>11450</member>11451<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_23">11452<summary>1145311454</summary>11455</member>11456<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_24">11457<summary>1145811459</summary>11460</member>11461<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_25">11462<summary>1146311464</summary>11465</member>11466<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_26">11467<summary>1146811469</summary>11470</member>11471<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_27">11472<summary>1147311474</summary>11475</member>11476<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_28">11477<summary>1147811479</summary>11480</member>11481<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_29">11482<summary>1148311484</summary>11485</member>11486<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_30">11487<summary>1148811489</summary>11490</member>11491<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_31">11492<summary>1149311494</summary>11495</member>11496<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_32">11497<summary>1149811499</summary>11500</member>11501<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_33">11502<summary>1150311504</summary>11505</member>11506<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_34">11507<summary>1150811509</summary>11510</member>11511<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_35">11512<summary>1151311514</summary>11515</member>11516<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_36">11517<summary>1151811519</summary>11520</member>11521<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_37">11522<summary>1152311524</summary>11525</member>11526<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_38">11527<summary>1152811529</summary>11530</member>11531<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_39">11532<summary>1153311534</summary>11535</member>11536<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_40">11537<summary>1153811539</summary>11540</member>11541<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_41">11542<summary>1154311544</summary>11545</member>11546<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_42">11547<summary>1154811549</summary>11550</member>11551<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_43">11552<summary>1155311554</summary>11555</member>11556<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_44">11557<summary>1155811559</summary>11560</member>11561<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_45">11562<summary>1156311564</summary>11565</member>11566<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_46">11567<summary>1156811569</summary>11570</member>11571<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_47">11572<summary>1157311574</summary>11575</member>11576<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_48">11577<summary>1157811579</summary>11580</member>11581<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_49">11582<summary>1158311584</summary>11585</member>11586<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_50">11587<summary>1158811589</summary>11590</member>11591<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_51">11592<summary>1159311594</summary>11595</member>11596<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_52">11597<summary>1159811599</summary>11600</member>11601<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_53">11602<summary>1160311604</summary>11605</member>11606<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_54">11607<summary>1160811609</summary>11610</member>11611<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_55">11612<summary>1161311614</summary>11615</member>11616<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_56">11617<summary>1161811619</summary>11620</member>11621<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_57">11622<summary>1162311624</summary>11625</member>11626<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_58">11627<summary>1162811629</summary>11630</member>11631<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_59">11632<summary>1163311634</summary>11635</member>11636<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_60">11637<summary>1163811639</summary>11640</member>11641<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_61">11642<summary>1164311644</summary>11645</member>11646<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_62">11647<summary>1164811649</summary>11650</member>11651<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_63">11652<summary>1165311654</summary>11655</member>11656<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_64">11657<summary>1165811659</summary>11660</member>11661<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_65">11662<summary>1166311664</summary>11665</member>11666<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_66">11667<summary>1166811669</summary>11670</member>11671<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_67">11672<summary>1167311674</summary>11675</member>11676<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_68">11677<summary>1167811679</summary>11680</member>11681<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_69">11682<summary>1168311684</summary>11685</member>11686<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_70">11687<summary>1168811689</summary>11690</member>11691<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_71">11692<summary>1169311694</summary>11695</member>11696<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_72">11697<summary>1169811699</summary>11700</member>11701<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_73">11702<summary>1170311704</summary>11705</member>11706<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_74">11707<summary>1170811709</summary>11710</member>11711<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_75">11712<summary>1171311714</summary>11715</member>11716<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_76">11717<summary>1171811719</summary>11720</member>11721<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_77">11722<summary>1172311724</summary>11725</member>11726<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_78">11727<summary>1172811729</summary>11730</member>11731<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_79">11732<summary>1173311734</summary>11735</member>11736<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_80">11737<summary>1173811739</summary>11740</member>11741<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_81">11742<summary>1174311744</summary>11745</member>11746<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_82">11747<summary>1174811749</summary>11750</member>11751<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_83">11752<summary>1175311754</summary>11755</member>11756<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_84">11757<summary>1175811759</summary>11760</member>11761<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_85">11762<summary>1176311764</summary>11765</member>11766<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_86">11767<summary>1176811769</summary>11770</member>11771<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_87">11772<summary>1177311774</summary>11775</member>11776<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_88">11777<summary>1177811779</summary>11780</member>11781<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_89">11782<summary>1178311784</summary>11785</member>11786<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_90">11787<summary>1178811789</summary>11790</member>11791<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_91">11792<summary>1179311794</summary>11795</member>11796<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_92">11797<summary>1179811799</summary>11800</member>11801<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_93">11802<summary>1180311804</summary>11805</member>11806<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_94">11807<summary>1180811809</summary>11810</member>11811<member name="F:Tao.Sdl.Sdl.SDLK_WORLD_95">11812<summary>118130xFF11814</summary>11815</member>11816<member name="F:Tao.Sdl.Sdl.SDLK_KP0">11817<summary>11818keypad 011819</summary>11820</member>11821<member name="F:Tao.Sdl.Sdl.SDLK_KP1">11822<summary>11823keypad 111824</summary>11825</member>11826<member name="F:Tao.Sdl.Sdl.SDLK_KP2">11827<summary>11828keypad 211829</summary>11830</member>11831<member name="F:Tao.Sdl.Sdl.SDLK_KP3">11832<summary>11833keypad 311834</summary>11835</member>11836<member name="F:Tao.Sdl.Sdl.SDLK_KP4">11837<summary>11838keypad 411839</summary>11840</member>11841<member name="F:Tao.Sdl.Sdl.SDLK_KP5">11842<summary>11843keypad 511844</summary>11845</member>11846<member name="F:Tao.Sdl.Sdl.SDLK_KP6">11847<summary>11848keypad 611849</summary>11850</member>11851<member name="F:Tao.Sdl.Sdl.SDLK_KP7">11852<summary>11853keypad 711854</summary>11855</member>11856<member name="F:Tao.Sdl.Sdl.SDLK_KP8">11857<summary>11858keypad 811859</summary>11860</member>11861<member name="F:Tao.Sdl.Sdl.SDLK_KP9">11862<summary>11863keypad 911864</summary>11865</member>11866<member name="F:Tao.Sdl.Sdl.SDLK_KP_PERIOD">11867<summary>11868keypad period. '.'11869</summary>11870</member>11871<member name="F:Tao.Sdl.Sdl.SDLK_KP_DIVIDE">11872<summary>11873keypad divide. '/'11874</summary>11875</member>11876<member name="F:Tao.Sdl.Sdl.SDLK_KP_MULTIPLY">11877<summary>11878keypad multiply. '*'11879</summary>11880</member>11881<member name="F:Tao.Sdl.Sdl.SDLK_KP_MINUS">11882<summary>11883keypad minus. '-'11884</summary>11885</member>11886<member name="F:Tao.Sdl.Sdl.SDLK_KP_PLUS">11887<summary>11888keypad plus. '+'11889</summary>11890</member>11891<member name="F:Tao.Sdl.Sdl.SDLK_KP_ENTER">11892<summary>11893keypad enter. '\r'11894</summary>11895</member>11896<member name="F:Tao.Sdl.Sdl.SDLK_KP_EQUALS">11897<summary>11898keypad equals. '='11899</summary>11900</member>11901<member name="F:Tao.Sdl.Sdl.SDLK_UP">11902<summary>11903up arrow11904</summary>11905</member>11906<member name="F:Tao.Sdl.Sdl.SDLK_DOWN">11907<summary>11908down arrow11909</summary>11910</member>11911<member name="F:Tao.Sdl.Sdl.SDLK_RIGHT">11912<summary>11913right arrow11914</summary>11915</member>11916<member name="F:Tao.Sdl.Sdl.SDLK_LEFT">11917<summary>11918left arrow11919</summary>11920</member>11921<member name="F:Tao.Sdl.Sdl.SDLK_INSERT">11922<summary>11923insert11924</summary>11925</member>11926<member name="F:Tao.Sdl.Sdl.SDLK_HOME">11927<summary>11928home11929</summary>11930</member>11931<member name="F:Tao.Sdl.Sdl.SDLK_END">11932<summary>11933end11934</summary>11935</member>11936<member name="F:Tao.Sdl.Sdl.SDLK_PAGEUP">11937<summary>11938page up11939</summary>11940</member>11941<member name="F:Tao.Sdl.Sdl.SDLK_PAGEDOWN">11942<summary>11943page down11944</summary>11945</member>11946<member name="F:Tao.Sdl.Sdl.SDLK_F1">11947<summary>11948F111949</summary>11950</member>11951<member name="F:Tao.Sdl.Sdl.SDLK_F2">11952<summary>11953F211954</summary>11955</member>11956<member name="F:Tao.Sdl.Sdl.SDLK_F3">11957<summary>11958F311959</summary>11960</member>11961<member name="F:Tao.Sdl.Sdl.SDLK_F4">11962<summary>11963F411964</summary>11965</member>11966<member name="F:Tao.Sdl.Sdl.SDLK_F5">11967<summary>11968F511969</summary>11970</member>11971<member name="F:Tao.Sdl.Sdl.SDLK_F6">11972<summary>11973F611974</summary>11975</member>11976<member name="F:Tao.Sdl.Sdl.SDLK_F7">11977<summary>11978F711979</summary>11980</member>11981<member name="F:Tao.Sdl.Sdl.SDLK_F8">11982<summary>11983F811984</summary>11985</member>11986<member name="F:Tao.Sdl.Sdl.SDLK_F9">11987<summary>11988F911989</summary>11990</member>11991<member name="F:Tao.Sdl.Sdl.SDLK_F10">11992<summary>11993F1011994</summary>11995</member>11996<member name="F:Tao.Sdl.Sdl.SDLK_F11">11997<summary>11998F1111999</summary>12000</member>12001<member name="F:Tao.Sdl.Sdl.SDLK_F12">12002<summary>12003F1212004</summary>12005</member>12006<member name="F:Tao.Sdl.Sdl.SDLK_F13">12007<summary>12008F1312009</summary>12010</member>12011<member name="F:Tao.Sdl.Sdl.SDLK_F14">12012<summary>12013F1412014</summary>12015</member>12016<member name="F:Tao.Sdl.Sdl.SDLK_F15">12017<summary>12018F1512019</summary>12020</member>12021<member name="F:Tao.Sdl.Sdl.SDLK_NUMLOCK">12022<summary>12023numlock12024</summary>12025</member>12026<member name="F:Tao.Sdl.Sdl.SDLK_CAPSLOCK">12027<summary>12028capslock12029</summary>12030</member>12031<member name="F:Tao.Sdl.Sdl.SDLK_SCROLLOCK">12032<summary>12033scrollock12034</summary>12035</member>12036<member name="F:Tao.Sdl.Sdl.SDLK_RSHIFT">12037<summary>12038right shift12039</summary>12040</member>12041<member name="F:Tao.Sdl.Sdl.SDLK_LSHIFT">12042<summary>12043left shift12044</summary>12045</member>12046<member name="F:Tao.Sdl.Sdl.SDLK_RCTRL">12047<summary>12048right ctrl12049</summary>12050</member>12051<member name="F:Tao.Sdl.Sdl.SDLK_LCTRL">12052<summary>12053left ctrl12054</summary>12055</member>12056<member name="F:Tao.Sdl.Sdl.SDLK_RALT">12057<summary>12058right alt12059</summary>12060</member>12061<member name="F:Tao.Sdl.Sdl.SDLK_LALT">12062<summary>12063left alt12064</summary>12065</member>12066<member name="F:Tao.Sdl.Sdl.SDLK_RMETA">12067<summary>12068right meta12069</summary>12070</member>12071<member name="F:Tao.Sdl.Sdl.SDLK_LMETA">12072<summary>12073left meta12074</summary>12075</member>12076<member name="F:Tao.Sdl.Sdl.SDLK_LSUPER">12077<summary>12078Left "Windows" key12079</summary>12080</member>12081<member name="F:Tao.Sdl.Sdl.SDLK_RSUPER">12082<summary>12083Right "Windows" key12084</summary>12085</member>12086<member name="F:Tao.Sdl.Sdl.SDLK_MODE">12087<summary>12088"Alt Gr" key. Mode key12089</summary>12090</member>12091<member name="F:Tao.Sdl.Sdl.SDLK_COMPOSE">12092<summary>12093Multi-key compose key12094</summary>12095</member>12096<member name="F:Tao.Sdl.Sdl.SDLK_HELP">12097<summary>12098help12099</summary>12100</member>12101<member name="F:Tao.Sdl.Sdl.SDLK_PRINT">12102<summary>12103print-screen12104</summary>12105</member>12106<member name="F:Tao.Sdl.Sdl.SDLK_SYSREQ">12107<summary>12108SysRq12109</summary>12110</member>12111<member name="F:Tao.Sdl.Sdl.SDLK_BREAK">12112<summary>12113break12114</summary>12115</member>12116<member name="F:Tao.Sdl.Sdl.SDLK_MENU">12117<summary>12118menu12119</summary>12120</member>12121<member name="F:Tao.Sdl.Sdl.SDLK_POWER">12122<summary>12123Power Macintosh power key12124</summary>12125</member>12126<member name="F:Tao.Sdl.Sdl.SDLK_EURO">12127<summary>12128Some european keyboards12129</summary>12130</member>12131<member name="F:Tao.Sdl.Sdl.SDLK_UNDO">12132<summary>12133Atari keyboard has Undo12134</summary>12135</member>12136<member name="F:Tao.Sdl.Sdl.SDLK_LAST">12137<summary>1213812139</summary>12140</member>12141<member name="F:Tao.Sdl.Sdl.KMOD_NONE">12142<summary>12143No modifiers applicable12144</summary>12145<remarks>12146Enumeration of valid key mods (possibly OR'd together)12147</remarks>12148</member>12149<member name="F:Tao.Sdl.Sdl.KMOD_LSHIFT">12150<summary>12151Left Shift is down12152</summary>12153<remarks>12154Enumeration of valid key mods (possibly OR'd together)12155</remarks>12156</member>12157<member name="F:Tao.Sdl.Sdl.KMOD_RSHIFT">12158<summary>12159Right Shift is down12160</summary>12161<remarks>12162Enumeration of valid key mods (possibly OR'd together)12163</remarks>12164</member>12165<member name="F:Tao.Sdl.Sdl.KMOD_LCTRL">12166<summary>12167Left Control is down12168</summary>12169<remarks>12170Enumeration of valid key mods (possibly OR'd together)12171</remarks>12172</member>12173<member name="F:Tao.Sdl.Sdl.KMOD_RCTRL">12174<summary>12175Right Control is down12176</summary>12177<remarks>12178Enumeration of valid key mods (possibly OR'd together)12179</remarks>12180</member>12181<member name="F:Tao.Sdl.Sdl.KMOD_LALT">12182<summary>12183Left Alt is down12184</summary>12185<remarks>12186Enumeration of valid key mods (possibly OR'd together)12187</remarks>12188</member>12189<member name="F:Tao.Sdl.Sdl.KMOD_RALT">12190<summary>12191Right Alt is down12192</summary>12193<remarks>12194Enumeration of valid key mods (possibly OR'd together)12195</remarks>12196</member>12197<member name="F:Tao.Sdl.Sdl.KMOD_LMETA">12198<summary>12199Left Meta is down12200</summary>12201<remarks>12202Enumeration of valid key mods (possibly OR'd together)12203</remarks>12204</member>12205<member name="F:Tao.Sdl.Sdl.KMOD_RMETA">12206<summary>12207Right Meta is down12208</summary>12209<remarks>12210Enumeration of valid key mods (possibly OR'd together)12211</remarks>12212</member>12213<member name="F:Tao.Sdl.Sdl.KMOD_NUM">12214<summary>12215Numlock is down12216</summary>12217<remarks>12218Enumeration of valid key mods (possibly OR'd together)12219</remarks>12220</member>12221<member name="F:Tao.Sdl.Sdl.KMOD_CAPS">12222<summary>12223Capslock is down12224</summary>12225<remarks>12226Enumeration of valid key mods (possibly OR'd together)12227</remarks>12228</member>12229<member name="F:Tao.Sdl.Sdl.KMOD_MODE">12230<summary>1223112232</summary>12233<remarks>12234Enumeration of valid key mods (possibly OR'd together)12235</remarks>12236</member>12237<member name="F:Tao.Sdl.Sdl.KMOD_RESERVED">12238<summary>1223912240</summary>12241<remarks>12242Enumeration of valid key mods (possibly OR'd together)12243</remarks>12244</member>12245<member name="F:Tao.Sdl.Sdl.SDL_FALSE">12246<summary>1224712248</summary>12249</member>12250<member name="F:Tao.Sdl.Sdl.SDL_TRUE">12251<summary>1225212253</summary>12254</member>12255<member name="F:Tao.Sdl.Sdl.SDL_SYSWM_X11">12256<summary>1225712258</summary>12259</member>12260<member name="F:Tao.Sdl.Sdl.SDL_GL_RED_SIZE">12261<summary>12262Size of the framebuffer red component, in bits12263Public enumeration for setting the OpenGL window Attributes12264</summary>12265<remarks>12266While you can set most OpenGL attributes normally,12267the attributes list above must be known before SDL12268sets the video mode. These attributes a set and read12269with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12270<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12271</remarks>12272<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12273<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12274</member>12275<member name="F:Tao.Sdl.Sdl.SDL_GL_GREEN_SIZE">12276<summary>12277Size of the framebuffer green component, in bits12278Public enumeration for setting the OpenGL window Attributes12279</summary>12280<remarks>12281While you can set most OpenGL attributes normally,12282the attributes list above must be known before SDL12283sets the video mode. These attributes a set and read12284with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12285<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12286</remarks>12287<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12288<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12289</member>12290<member name="F:Tao.Sdl.Sdl.SDL_GL_BLUE_SIZE">12291<summary>12292Size of the framebuffer blue component, in bits12293Public enumeration for setting the OpenGL window Attributes12294</summary>12295<remarks>12296While you can set most OpenGL attributes normally,12297the attributes list above must be known before SDL12298sets the video mode. These attributes a set and read12299with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12300<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12301</remarks>12302<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12303<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12304</member>12305<member name="F:Tao.Sdl.Sdl.SDL_GL_ALPHA_SIZE">12306<summary>12307Size of the framebuffer alpha component, in bits12308Public enumeration for setting the OpenGL window Attributes12309</summary>12310<remarks>12311While you can set most OpenGL attributes normally,12312the attributes list above must be known before SDL12313sets the video mode. These attributes a set and read12314with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12315<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12316Public enumeration for setting the OpenGL window Attributes12317While you can set most OpenGL attributes normally,12318the attributes list above must be known before SDL12319sets the video mode.12320</remarks>12321<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12322<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12323</member>12324<member name="F:Tao.Sdl.Sdl.SDL_GL_BUFFER_SIZE">12325<summary>12326Size of the framebuffer, in bits12327Public enumeration for setting the OpenGL window Attributes12328</summary>12329<remarks>12330While you can set most OpenGL attributes normally,12331the attributes list above must be known before SDL12332sets the video mode. These attributes a set and read12333with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12334<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12335</remarks>12336<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12337<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12338</member>12339<member name="F:Tao.Sdl.Sdl.SDL_GL_DOUBLEBUFFER">12340<summary>123410 or 1, enable or disable double buffering12342Public enumeration for setting the OpenGL window Attributes12343</summary>12344<remarks>12345While you can set most OpenGL attributes normally,12346the attributes list above must be known before SDL12347sets the video mode. These attributes a set and read12348with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12349<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12350</remarks>12351<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12352<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12353</member>12354<member name="F:Tao.Sdl.Sdl.SDL_GL_DEPTH_SIZE">12355<summary>12356Size of the depth buffer, in bits12357Public enumeration for setting the OpenGL window Attributes12358</summary>12359<remarks>12360While you can set most OpenGL attributes normally,12361the attributes list above must be known before SDL12362sets the video mode. These attributes a set and read12363with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12364<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12365</remarks>12366<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12367<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12368</member>12369<member name="F:Tao.Sdl.Sdl.SDL_GL_STENCIL_SIZE">12370<summary>12371Size of the stencil buffer, in bits.12372Public enumeration for setting the OpenGL window Attributes12373</summary>12374<remarks>12375While you can set most OpenGL attributes normally,12376the attributes list above must be known before SDL12377sets the video mode. These attributes a set and read12378with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12379<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12380</remarks>12381<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12382<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12383</member>12384<member name="F:Tao.Sdl.Sdl.SDL_GL_ACCUM_RED_SIZE">12385<summary>12386Size of the accumulation buffer red component, in bits.12387Public enumeration for setting the OpenGL window Attributes12388</summary>12389<remarks>12390While you can set most OpenGL attributes normally,12391the attributes list above must be known before SDL12392sets the video mode. These attributes a set and read12393with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12394<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12395</remarks>12396<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12397<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12398</member>12399<member name="F:Tao.Sdl.Sdl.SDL_GL_ACCUM_GREEN_SIZE">12400<summary>12401Size of the accumulation buffer green component, in bits.12402Public enumeration for setting the OpenGL window Attributes12403</summary>12404<remarks>12405While you can set most OpenGL attributes normally,12406the attributes list above must be known before SDL12407sets the video mode. These attributes a set and read12408with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12409<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12410</remarks>12411<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12412<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12413</member>12414<member name="F:Tao.Sdl.Sdl.SDL_GL_ACCUM_BLUE_SIZE">12415<summary>12416Size of the accumulation buffer blue component, in bits.12417Public enumeration for setting the OpenGL window Attributes12418</summary>12419<remarks>12420While you can set most OpenGL attributes normally,12421the attributes list above must be known before SDL12422sets the video mode. These attributes a set and read12423with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12424<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12425</remarks>12426<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12427<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12428</member>12429<member name="F:Tao.Sdl.Sdl.SDL_GL_ACCUM_ALPHA_SIZE">12430<summary>12431Size of the accumulation buffer alpha component, in bits.12432Public enumeration for setting the OpenGL window Attributes12433</summary>12434<remarks>12435While you can set most OpenGL attributes normally,12436the attributes list above must be known before SDL12437sets the video mode. These attributes a set and read12438with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12439<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12440</remarks>12441<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12442<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12443</member>12444<member name="F:Tao.Sdl.Sdl.SDL_GL_STEREO">12445<summary>12446Public enumeration for setting the OpenGL window Attributes12447</summary>12448<remarks>12449While you can set most OpenGL attributes normally,12450the attributes list above must be known before SDL12451sets the video mode. These attributes a set and read12452with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12453<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12454</remarks>12455<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12456<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12457</member>12458<member name="F:Tao.Sdl.Sdl.SDL_GL_MULTISAMPLEBUFFERS">12459<summary>12460Public enumeration for setting the OpenGL window Attributes12461</summary>12462<remarks>12463While you can set most OpenGL attributes normally,12464the attributes list above must be known before SDL12465sets the video mode. These attributes a set and read12466with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12467<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12468</remarks>12469<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12470<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12471</member>12472<member name="F:Tao.Sdl.Sdl.SDL_GL_MULTISAMPLESAMPLES">12473<summary>12474Public enumeration for setting the OpenGL window Attributes12475</summary>12476<remarks>12477While you can set most OpenGL attributes normally,12478the attributes list above must be known before SDL12479sets the video mode. These attributes a set and read12480with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12481<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12482</remarks>12483<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12484<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12485</member>12486<member name="F:Tao.Sdl.Sdl.SDL_GL_ACCELERATED_VISUAL">12487<summary>12488Public enumeration for setting the OpenGL window Attributes12489</summary>12490<remarks>12491While you can set most OpenGL attributes normally,12492the attributes list above must be known before SDL12493sets the video mode. These attributes a set and read12494with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12495<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12496</remarks>12497<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12498<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12499</member>12500<member name="F:Tao.Sdl.Sdl.SDL_GL_SWAP_CONTROL">12501<summary>12502Public enumeration for setting the OpenGL window Attributes12503</summary>12504<remarks>12505While you can set most OpenGL attributes normally,12506the attributes list above must be known before SDL12507sets the video mode. These attributes a set and read12508with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/> and12509<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>.12510</remarks>12511<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>12512<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>12513</member>12514<member name="F:Tao.Sdl.Sdl.SDL_GRAB_QUERY">12515<summary>12516Input grab state.12517</summary>12518<remarks>12519enum SDL_GrabMode.12520</remarks>12521<see cref="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)"/>12522</member>12523<member name="F:Tao.Sdl.Sdl.SDL_GRAB_OFF">12524<summary>12525Input grab state.12526</summary>12527<remarks>12528enum SDL_GrabMode.12529</remarks>12530<see cref="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)"/>12531</member>12532<member name="F:Tao.Sdl.Sdl.SDL_GRAB_ON">12533<summary>12534Input grab state.12535</summary>12536<remarks>12537enum SDL_GrabMode.12538</remarks>12539<see cref="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)"/>12540</member>12541<member name="F:Tao.Sdl.Sdl.SDL_GRAB_FULLSCREEN">12542<summary>12543Input grab state.12544</summary>12545<remarks>12546enum SDL_GrabMode.12547</remarks>12548<see cref="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)"/>12549</member>12550<member name="M:Tao.Sdl.Sdl.objc_getClass(System.String)">12551<summary>1255212553</summary>12554<param name="name"></param>12555<returns></returns>12556</member>12557<member name="M:Tao.Sdl.Sdl.sel_registerName(System.String)">12558<summary>1255912560</summary>12561<param name="name"></param>12562<returns></returns>12563</member>12564<member name="M:Tao.Sdl.Sdl.objc_msgSend(System.Int32,System.Int32)">12565<summary>1256612567</summary>12568<param name="self"></param>12569<param name="cmd"></param>12570<returns></returns>12571</member>12572<member name="F:Tao.Sdl.Sdl.AUDIO_U16">12573<summary>12574Unsigned 16-bit little-endian samples12575</summary>12576</member>12577<member name="F:Tao.Sdl.Sdl.AUDIO_S16">12578<summary>12579Signed 16-bit little-endian samples12580</summary>12581</member>12582<member name="F:Tao.Sdl.Sdl.keyboardState">12583<summary>12584Private byte array holding the internal keyboard state.12585</summary>12586<remarks>12587Used for <see cref="M:Tao.Sdl.Sdl.SDL_GetKeyState(System.Int32@)"/>.12588Array is sized to fit all the known Key enums.12589</remarks>12590</member>12591<member name="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)">12592<summary>12593Initializes SDL and the specified subsystems.12594</summary>12595<param name="flags">12596<para>12597Specifies what part(s) of SDL to initialize:12598</para>12599<para>12600<list type="table">12601<listheader>12602<term>Flag</term>12603<description>Description</description>12604</listheader>12605<item>12606<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12607<description>Initializes the timer subsystem.</description>12608</item>12609<item>12610<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12611<description>Initializes the audio subsystem.</description>12612</item>12613<item>12614<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12615<description>Initializes the video subsystem.</description>12616</item>12617<item>12618<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12619<description>Initializes the CD-ROM subsystem.</description>12620</item>12621<item>12622<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12623<description>Initializes the joystick subsystem.</description>12624</item>12625<item>12626<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12627<description>Initializes all subsystems.</description>12628</item>12629<item>12630<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12631<description>Prevents SDL from catching fatal signals.</description>12632</item>12633<item>12634<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12635<description>Not supported on all OS's.</description>12636</item>12637</list>12638</para>12639</param>12640<returns>12641Returns -1 on an error or 0 on success.12642</returns>12643<remarks>12644<para>12645Unless the <see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/> flag is set, it will install12646cleanup signal handlers for some commonly ignored fatal signals (like12647SIGSEGV).12648</para>12649<p>12650Binds to C-function call in SDL.h:12651<code>extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags)</code>12652</p>12653</remarks>12654<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>12655<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12656</member>12657<member name="M:Tao.Sdl.Sdl.SDL_Init(System.UInt32)">12658<summary>12659Initializes SDL and the specified subsystems.12660</summary>12661<param name="flags">12662<para>12663Specifies what part(s) of SDL to initialize:12664</para>12665<para>12666<list type="table">12667<listheader>12668<term>Flag</term>12669<description>Description</description>12670</listheader>12671<item>12672<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12673<description>Initializes the timer subsystem.</description>12674</item>12675<item>12676<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12677<description>Initializes the audio subsystem.</description>12678</item>12679<item>12680<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12681<description>Initializes the video subsystem.</description>12682</item>12683<item>12684<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12685<description>Initializes the CD-ROM subsystem.</description>12686</item>12687<item>12688<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12689<description>Initializes the joystick subsystem.</description>12690</item>12691<item>12692<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12693<description>Initializes all subsystems.</description>12694</item>12695<item>12696<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12697<description>Prevents SDL from catching fatal signals.</description>12698</item>12699<item>12700<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12701<description>Not supported on all OS's.</description>12702</item>12703</list>12704</para>12705</param>12706<returns>12707Returns -1 on an error or 0 on success.12708</returns>12709<remarks>12710<para>12711Unless the <see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/> flag is set, it will install12712cleanup signal handlers for some commonly ignored fatal signals (like12713SIGSEGV).12714</para>12715<p>12716Binds to C-function call in SDL.h:12717<code>extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags)</code>12718</p>12719</remarks>12720<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>12721<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12722</member>12723<member name="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)">12724<summary>12725Initializes specified subsystems.12726</summary>12727<param name="flags">12728<para>12729Specifies what part(s) of SDL to initialize:12730</para>12731<para>12732<list type="table">12733<listheader>12734<term>Flag</term>12735<description>Description</description>12736</listheader>12737<item>12738<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12739<description>Initializes the timer subsystem.</description>12740</item>12741<item>12742<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12743<description>Initializes the audio subsystem.</description>12744</item>12745<item>12746<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12747<description>Initializes the video subsystem.</description>12748</item>12749<item>12750<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12751<description>Initializes the CD-ROM subsystem.</description>12752</item>12753<item>12754<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12755<description>Initializes the joystick subsystem.</description>12756</item>12757<item>12758<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12759<description>Initializes all subsystems.</description>12760</item>12761<item>12762<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12763<description>Prevents SDL from catching fatal signals.</description>12764</item>12765<item>12766<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12767<description>Not supported on all OS's.</description>12768</item>12769</list>12770</para>12771</param>12772<returns>12773Returns -1 on an error or 0 on success.12774</returns>12775<remarks>12776After SDL has been initialized with <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/> you may initialize12777any uninitialized subsystems with <b>SDL_InitSubSystem</b>.12778<p>12779Binds to C-function call in SDL.h:12780<code>extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags)</code>12781</p>12782</remarks>12783<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>12784<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12785<seealso cref="M:Tao.Sdl.Sdl.SDL_QuitSubSystem(System.Int32)"/>1278612787</member>12788<member name="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.UInt32)">12789<summary>12790Initializes specified subsystems.12791</summary>12792<param name="flags">12793<para>12794Specifies what part(s) of SDL to initialize:12795</para>12796<para>12797<list type="table">12798<listheader>12799<term>Flag</term>12800<description>Description</description>12801</listheader>12802<item>12803<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12804<description>Initializes the timer subsystem.</description>12805</item>12806<item>12807<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12808<description>Initializes the audio subsystem.</description>12809</item>12810<item>12811<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12812<description>Initializes the video subsystem.</description>12813</item>12814<item>12815<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12816<description>Initializes the CD-ROM subsystem.</description>12817</item>12818<item>12819<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12820<description>Initializes the joystick subsystem.</description>12821</item>12822<item>12823<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12824<description>Initializes all subsystems.</description>12825</item>12826<item>12827<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12828<description>Prevents SDL from catching fatal signals.</description>12829</item>12830<item>12831<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12832<description>Not supported on all OS's.</description>12833</item>12834</list>12835</para>12836</param>12837<returns>12838Returns -1 on an error or 0 on success.12839</returns>12840<remarks>12841After SDL has been initialized with <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/> you may initialize12842any uninitialized subsystems with <b>SDL_InitSubSystem</b>.12843<p>12844Binds to C-function call in SDL.h:12845<code>extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags)</code>12846</p>12847</remarks>12848<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>12849<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12850<seealso cref="M:Tao.Sdl.Sdl.SDL_QuitSubSystem(System.Int32)"/>1285112852</member>12853<member name="M:Tao.Sdl.Sdl.SDL_QuitSubSystem(System.Int32)">12854<summary>12855Shuts down specified subsystems.12856</summary>12857<param name="flags">12858<para>12859Specifies what part(s) of SDL to shut down:12860</para>12861<para>12862<list type="table">12863<listheader>12864<term>Flag</term>12865<description>Description</description>12866</listheader>12867<item>12868<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12869<description>Shuts down the timer subsystem.</description>12870</item>12871<item>12872<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12873<description>Shuts down the audio subsystem.</description>12874</item>12875<item>12876<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12877<description>Shuts down the video subsystem.</description>12878</item>12879<item>12880<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12881<description>Shuts down the CD-ROM subsystem.</description>12882</item>12883<item>12884<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12885<description>Shuts down the joystick subsystem.</description>12886</item>12887<item>12888<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12889<description>Shuts down all subsystems.</description>12890</item>12891<item>12892<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12893<description>Prevents SDL from catching fatal signals.</description>12894</item>12895<item>12896<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12897<description>Not supported on all OS's.</description>12898</item>12899</list>12900</para>12901</param>12902<remarks>12903<b>SDL_QuitSubSystem</b> allows you to shut down a subsystem that has been12904previously initialized by <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/> or12905<see cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>.12906<p>12907Binds to C-function call in SDL.h:12908<code>extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags)</code>12909</p>12910</remarks>12911<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>12912<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>12913<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12914</member>12915<member name="M:Tao.Sdl.Sdl.SDL_QuitSubSystem(System.UInt32)">12916<summary>12917Shuts down specified subsystems.12918</summary>12919<param name="flags">12920<para>12921Specifies what part(s) of SDL to shut down:12922</para>12923<para>12924<list type="table">12925<listheader>12926<term>Flag</term>12927<description>Description</description>12928</listheader>12929<item>12930<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12931<description>Shuts down the timer subsystem.</description>12932</item>12933<item>12934<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12935<description>Shuts down the audio subsystem.</description>12936</item>12937<item>12938<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>12939<description>Shuts down the video subsystem.</description>12940</item>12941<item>12942<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>12943<description>Shuts down the CD-ROM subsystem.</description>12944</item>12945<item>12946<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>12947<description>Shuts down the joystick subsystem.</description>12948</item>12949<item>12950<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>12951<description>Shuts down all subsystems.</description>12952</item>12953<item>12954<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>12955<description>Prevents SDL from catching fatal signals.</description>12956</item>12957<item>12958<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>12959<description>Not supported on all OS's.</description>12960</item>12961</list>12962</para>12963</param>12964<remarks>12965<b>SDL_QuitSubSystem</b> allows you to shut down a subsystem that has been12966previously initialized by <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/> or12967<see cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>.12968<p>12969Binds to C-function call in SDL.h:12970<code>extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags)</code>12971</p>12972</remarks>12973<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>12974<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>12975<seealso cref="M:Tao.Sdl.Sdl.SDL_Quit"/>12976</member>12977<member name="M:Tao.Sdl.Sdl.SDL_WasInit(System.Int32)">12978<summary>12979Checks which SDL subsystems are initialized.12980</summary>12981<param name="flags">12982<para>12983Specifies the subsystems you wish to check:12984</para>12985<para>12986<list type="table">12987<listheader>12988<term>Flag</term>12989<description>Description</description>12990</listheader>12991<item>12992<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>12993<description>The timer subsystem.</description>12994</item>12995<item>12996<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>12997<description>The audio subsystem.</description>12998</item>12999<item>13000<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>13001<description>The video subsystem.</description>13002</item>13003<item>13004<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>13005<description>The CD-ROM subsystem.</description>13006</item>13007<item>13008<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>13009<description>The joystick subsystem.</description>13010</item>13011<item>13012<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>13013<description>All subsystems.</description>13014</item>13015<item>13016<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>13017<description>Prevents SDL from catching fatal signals.</description>13018</item>13019<item>13020<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>13021<description>Not supported on all OS's.</description>13022</item>13023</list>13024</para>13025</param>13026<returns>13027A bitwised OR'd combination of the initialized subsystems.13028</returns>13029<remarks>13030<b>SDL_WasInit</b> allows you to see which SDL subsytems have been initialized.13031<p>13032Binds to C-function call in SDL.h:13033<code>extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags)</code>13034</p>13035</remarks>13036<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>13037<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>13038</member>13039<member name="M:Tao.Sdl.Sdl.SDL_WasInit(System.UInt32)">13040<summary>13041Checks which SDL subsystems are initialized.13042</summary>13043<param name="flags">13044<para>13045Specifies the subsystems you wish to check:13046</para>13047<para>13048<list type="table">13049<listheader>13050<term>Flag</term>13051<description>Description</description>13052</listheader>13053<item>13054<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/></term>13055<description>The timer subsystem.</description>13056</item>13057<item>13058<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_AUDIO"/></term>13059<description>The audio subsystem.</description>13060</item>13061<item>13062<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_VIDEO"/></term>13063<description>The video subsystem.</description>13064</item>13065<item>13066<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_CDROM"/></term>13067<description>The CD-ROM subsystem.</description>13068</item>13069<item>13070<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_JOYSTICK"/></term>13071<description>The joystick subsystem.</description>13072</item>13073<item>13074<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVERYTHING"/></term>13075<description>All subsystems.</description>13076</item>13077<item>13078<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_NOPARACHUTE"/></term>13079<description>Prevents SDL from catching fatal signals.</description>13080</item>13081<item>13082<term><see cref="F:Tao.Sdl.Sdl.SDL_INIT_EVENTTHREAD"/></term>13083<description>Not supported on all OS's.</description>13084</item>13085</list>13086</para>13087</param>13088<returns>13089A bitwised OR'd combination of the initialized subsystems.13090</returns>13091<remarks>13092<b>SDL_WasInit</b> allows you to see which SDL subsytems have been initialized.13093<p>13094Binds to C-function call in SDL.h:13095<code>extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags)</code>13096</p>13097</remarks>13098<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>13099<seealso cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>13100</member>13101<member name="M:Tao.Sdl.Sdl.SDL_Quit">13102<summary>13103Shuts down SDL.13104</summary>13105<remarks>13106<b>SDL_Quit</b> shuts down all SDL subsystems and frees the resources allocated13107to them. This should always be called before you exit.13108<p>13109Binds to C-function call in SDL.h:13110<code>extern DECLSPEC void SDLCALL SDL_Quit(void)</code>13111</p>13112</remarks>13113<seealso cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>13114<seealso cref="M:Tao.Sdl.Sdl.SDL_QuitSubSystem(System.Int32)"/>13115</member>13116<member name="M:Tao.Sdl.Sdl.SDL_GetAppState">13117<summary>13118This function returns the current state of the application,13119which is a bitwise combination of SDL_APPMOUSEFOCUS,13120SDL_APPINPUTFOCUS, and SDL_APPACTIVE.13121</summary>13122<remarks>13123If SDL_APPACTIVE is set, then the user is able to see13124your application,13125otherwise it has been iconified or disabled.13126</remarks>13127<returns>Returns the current state of the application,13128which is a bitwise combination of SDL_APPMOUSEFOCUS,13129SDL_APPINPUTFOCUS, and SDL_APPACTIVE13130</returns>13131</member>13132<member name="M:Tao.Sdl.Sdl.SDL_AudioInit(System.String)">13133<summary>13134This function is used internally,13135and should not be used unless you13136have a specific need to specify the audio driver you want to use.13137You should normally use13138<see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/> or <see cref="M:Tao.Sdl.Sdl.SDL_InitSubSystem(System.Int32)"/>.13139</summary>13140<remarks>13141Binds to C-function call in SDL_audio.h:13142<code>int SDL_AudioInit(const char *driver_name)13143</code></remarks>13144<param name="driver_name">13145</param>13146<returns></returns>13147</member>13148<member name="M:Tao.Sdl.Sdl.SDL_AudioQuit">13149<summary>13150This function is used internally,13151and should not be used unless you13152have a specific need to specify the audio driver you want to use.13153You should normally use SDL_Init() or SDL_InitSubSystem().13154</summary>13155<remarks>13156Binds to C-function call in SDL_audio.h:13157<code>void SDL_AudioQuit()13158</code></remarks>13159</member>13160<member name="M:Tao.Sdl.Sdl.SDL_AudioDriverName(System.String,System.Int32)">13161<summary>13162This function fills the given character buffer with the name of the13163current audio driver, and returns a pointer to it if the audio13164driver has been initialized.13165</summary>13166<remarks>13167Binds to C-function call in SDL_audio.h:13168<code>char * SDL_AudioDriverName(char *namebuf, int maxlen)13169</code>13170</remarks>13171<returns>It returns NULL if no driver has been initialized.13172</returns>13173<param name="namebuf"></param>13174<param name="maxlen"></param>13175</member>13176<member name="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)">13177<summary>13178Opens the audio device with the desired parameters.13179</summary>13180<remarks>13181This function opens the audio device with the desired parameters,13182and returns 0 if successful, placing the actual hardware13183parameters in the structure pointed to by obtained. If obtained13184is NULL, the audio data passed to the callback function will13185be guaranteed to be in the requested format, and will be13186automatically converted to the hardware audio format if13187necessary. This function returns -1 if it failed to open13188the audio device, or couldn't set up the audio thread.13189<p>To open the audio device a desired13190<see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/> must be created.</p>13191<code>13192SDL_AudioSpec *desired;13193.13194.13195desired = malloc(sizeof(SDL_AudioSpec)); </code>13196<p>You must then fill this structure with13197your desired audio specifications.</p>13198<p>desired->freq</p>13199The desired audio frequency in samples-per-second.13200<p>desired->format</p>13201The desired audio format (see <see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>)13202<p>desired->samples</p>13203The desired size of the audio buffer in samples.13204This number should be a power of two, and may be adjusted by the13205audio driver to a value more suitable for the hardware. Good13206values seem to range between 512 and 8192 inclusive, depending13207on the application and CPU speed. Smaller values yield faster13208response time, but can lead to underflow if the application13209is doing heavy processing and cannot fill the audio buffer13210in time. A stereo sample consists of both right and left13211channels in LR ordering. Note that the number of samples13212is directly related to time by the following formula:13213ms = (samples*1000)/freq13214<p>desired->callback</p>13215This should be set to a function that will be called when the13216audio device is ready for more data. It is passed a pointer13217to the audio buffer, and the length in bytes of the audio13218buffer. This function usually runs in a separate thread, and13219so you should protect data structures that it accesses by13220calling <see cref="M:Tao.Sdl.Sdl.SDL_LockAudio"/> and13221<see cref="M:Tao.Sdl.Sdl.SDL_UnlockAudio"/> in your code. The callback13222prototype is:13223<code>13224void callback(void *userdata, Uint8 *stream, int len);13225</code>13226<p>userdata is the pointer stored in userdata field of the13227SDL_AudioSpec. stream is a pointer to the audio buffer you13228want to fill with information and len is the length of the13229audio buffer in bytes.</p>13230<p> desired->userdata</p>13231<p> This pointer is passed as the first parameter to the13232callback function.</p>13233<p> SDL_OpenAudio reads these fields from the desired13234SDL_AudioSpec structure pass to the function and attempts to find13235an audio configuration matching your desired. As mentioned above,13236if the obtained parameter is NULL then SDL with convert from your13237desired audio settings to the hardware settings as it plays.</p>13238<p>If obtained is NULL then the desired SDL_AudioSpec is your13239working specification, otherwise the obtained SDL_AudioSpec13240becomes the working specification and the desirec specification13241can be deleted. The data in the working specification is used13242when building SDL_AudioCVT's for converting loaded data to the13243hardware format.</p>13244<p>SDL_OpenAudio calculates the size and silence fields for both13245the desired and obtained specifications. The size field stores13246the total size of the audio buffer in bytes, while the silence13247stores the value used to represent silence in the audio buffer.13248</p>13249<p>The audio device starts out playing silence when it's opened,13250and should be enabled for playing by calling13251<see cref="M:Tao.Sdl.Sdl.SDL_PauseAudio(System.Int32)"/>(0) when you are ready for your13252audio callback function to be called. Since the audio driver13253may modify the requested size of the audio buffer, you should13254allocate any local mixing buffers after you open the audio13255device.</p>13256<p>Binds to C-function call in SDL_audio.h:13257<code>int SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);13258</code></p>13259</remarks>13260<example>13261<code>1326213263/* Prototype of our callback function */13264void my_audio_callback(void *userdata, Uint8 *stream, int len);1326513266/* Open the audio device */13267SDL_AudioSpec *desired, *obtained;13268SDL_AudioSpec *hardware_spec;1326913270/* Allocate a desired SDL_AudioSpec */13271desired = malloc(sizeof(SDL_AudioSpec));1327213273/* Allocate space for the obtained SDL_AudioSpec */13274obtained = malloc(sizeof(SDL_AudioSpec));1327513276/* 22050Hz - FM Radio quality */13277desired->freq=22050;1327813279/* 16-bit signed audio */13280desired->format=AUDIO_S16LSB;1328113282/* Mono */13283desired->channels=0;1328413285/* Large audio buffer reduces risk of dropouts but13286increases response time */13287desired->samples=8192;1328813289/* Our callback function */13290desired->callback=my_audio_callback;1329113292desired->userdata=NULL;1329313294/* Open the audio device */13295if ( SDL_OpenAudio(desired, obtained) < 0 )13296{13297fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());13298exit(-1);13299}13300/* desired spec is no longer needed */13301free(desired);13302hardware_spec=obtained;13303.13304.13305/* Prepare callback for playing */13306.13307.13308.13309/* Start playing */13310SDL_PauseAudio(0);</code>13311</example>13312<param name="desired">IntPtr to SDL_AudioSpec</param>13313<param name="obtained">IntPtr to SDL_AudioSpec</param>13314<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>13315<seealso cref="M:Tao.Sdl.Sdl.SDL_LockAudio"/>13316<seealso cref="M:Tao.Sdl.Sdl.SDL_UnlockAudio"/>13317<seealso cref="M:Tao.Sdl.Sdl.SDL_PauseAudio(System.Int32)"/>13318</member>13319<member name="M:Tao.Sdl.Sdl.SDL_GetAudioStatus">13320<summary>13321Get the current audio state.13322</summary>13323<remarks>13324<p>Binds to C-function call in SDL_audio.h:13325<code>SDL_audiostatus SDL_GetAudioStatus(void)13326</code></p>13327</remarks>13328<returns>Returns either SDL_AUDIO_STOPPED,13329SDL_AUDIO_PAUSED or SDL_AUDIO_PLAYING (SDLaudiostatus enum)13330depending on the current audio state.</returns>13331<seealso cref="M:Tao.Sdl.Sdl.SDL_PauseAudio(System.Int32)"/>13332</member>13333<member name="M:Tao.Sdl.Sdl.SDL_PauseAudio(System.Int32)">13334<summary>13335Pauses and unpauses the audio callback processing.13336</summary>13337<remarks>13338This function pauses and unpauses the audio callback processing.13339It should be called with pause_on=0 after opening the audio device13340to start playing sound. This is so you can safely initialize data13341for your callback function after opening the audio device.13342Silence will be written to the audio device during the pause.13343<p>Binds to C-function call in SDL_audio.h:13344<code>void SDL_PauseAudio(int pause_on)13345</code></p>13346</remarks>13347<param name="pause_on"></param>13348<seealso cref="M:Tao.Sdl.Sdl.SDL_GetAudioStatus"/>13349<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13350</member>13351<member name="M:Tao.Sdl.Sdl.SDL_LoadWAV_RW(System.IntPtr,System.Int32,System.IntPtr@,System.IntPtr@,System.Int32@)">13352<summary>13353This function loads a WAVE from the data source,13354automatically freeing13355that source if 'freesrc' is non-zero.13356For example, to load a WAVE file,13357you could do:13358SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...);13359</summary>13360<remarks>If this function succeeds, it returns the given SDL_AudioSpec,13361filled with the audio data format of the wave data, and sets13362'audio_buf' to a malloc()'d buffer containing the audio data,13363and sets 'audio_len' to the length of that audio buffer, in bytes.13364You need to free the audio buffer with SDL_FreeWAV() when you are13365done with it.13366<p>This function returns NULL and sets the SDL error message if the13367wave file cannot be opened, uses an unknown data format, or is13368corrupt. Currently raw and MS-ADPCM WAVE files are supported.</p>13369<p>Binds to C-function call in SDL_audio.h:13370<code>SDL_AudioSpec * SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len)13371</code>13372</p></remarks>13373<param name="audio_buf"></param>13374<param name="audio_len"></param>13375<param name="freesrc"></param>13376<param name="spec"></param>13377<param name="src"></param>13378<returns></returns>13379</member>13380<member name="M:Tao.Sdl.Sdl.SDL_LoadWAV_RW(System.IntPtr,System.Int32,System.IntPtr@,System.IntPtr@,System.UInt32@)">13381<summary>13382This function loads a WAVE from the data source,13383automatically freeing13384that source if 'freesrc' is non-zero.13385For example, to load a WAVE file,13386you could do:13387SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...);13388</summary>13389<remarks>If this function succeeds, it returns the given SDL_AudioSpec,13390filled with the audio data format of the wave data, and sets13391'audio_buf' to a malloc()'d buffer containing the audio data,13392and sets 'audio_len' to the length of that audio buffer, in bytes.13393You need to free the audio buffer with SDL_FreeWAV() when you are13394done with it.13395<p>This function returns NULL and sets the SDL error message if the13396wave file cannot be opened, uses an unknown data format, or is13397corrupt. Currently raw and MS-ADPCM WAVE files are supported.</p>13398<p>Binds to C-function call in SDL_audio.h:13399<code>SDL_AudioSpec * SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len)13400</code>13401</p></remarks>13402<param name="audio_buf"></param>13403<param name="audio_len"></param>13404<param name="freesrc"></param>13405<param name="spec"></param>13406<param name="src"></param>13407<returns></returns>13408</member>13409<member name="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)">13410<summary>13411Load a WAVE file.13412</summary>13413<remarks>13414SDL_LoadWAV This function loads a WAVE file into memory.13415<p>If this function succeeds, it returns the given13416<see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>,13417filled with the audio data format of the wave data, and sets13418audio_buf to a malloc'd buffer containing the audio data, and13419sets audio_len to the length of that audio buffer, in bytes.13420You need to free the audio buffer with13421<see cref="M:Tao.Sdl.Sdl.SDL_FreeWAV(System.IntPtr@)"/> when you are done with it.</p>13422<p>This function returns NULL and sets the SDL error message if the13423wave file cannot be opened, uses an unknown data format, or is13424corrupt. Currently raw, MS-ADPCM and IMA-ADPCM WAVE files are13425supported.</p>13426<p>Binds to C-function call in SDL_audio.h:13427<code>13428#define SDL_LoadWAV(file, spec, audio_buf, audio_len)13429SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)1343013431SDL_AudioSpec *SDL_LoadWAV(const char *file, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);13432</code></p>13433</remarks>13434<example>13435<code>13436SDL_AudioSpec wav_spec;13437Uint32 wav_length;13438Uint8 *wav_buffer;1343913440/* Load the WAV */13441if( SDL_LoadWAV("test.wav", wav_spec, wav_buffer, wav_length) == NULL )13442{13443fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError());13444exit(-1);13445}13446.13447.13448.13449/* Do stuff with the WAV */13450.13451.13452/* Free It */13453SDL_FreeWAV(wav_buffer);13454</code>13455</example>13456<param name="file"></param>13457<param name="spec"></param>13458<param name="audio_buf"></param>13459<param name="audio_len"></param>13460<returns>IntPtr to SDL_AudioApec</returns>13461<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>13462<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13463<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeWAV(System.IntPtr@)"/>13464</member>13465<member name="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.UInt32@)">13466<summary>13467Load a WAVE file.13468</summary>13469<remarks>13470SDL_LoadWAV This function loads a WAVE file into memory.13471<p>If this function succeeds, it returns the given13472<see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>,13473filled with the audio data format of the wave data, and sets13474audio_buf to a malloc'd buffer containing the audio data, and13475sets audio_len to the length of that audio buffer, in bytes.13476You need to free the audio buffer with13477<see cref="M:Tao.Sdl.Sdl.SDL_FreeWAV(System.IntPtr@)"/> when you are done with it.</p>13478<p>This function returns NULL and sets the SDL error message if the13479wave file cannot be opened, uses an unknown data format, or is13480corrupt. Currently raw, MS-ADPCM and IMA-ADPCM WAVE files are13481supported.</p>13482<p>Binds to C-function call in SDL_audio.h:13483<code>13484#define SDL_LoadWAV(file, spec, audio_buf, audio_len)13485SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)1348613487SDL_AudioSpec *SDL_LoadWAV(const char *file, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);13488</code></p>13489</remarks>13490<example>13491<code>13492SDL_AudioSpec wav_spec;13493Uint32 wav_length;13494Uint8 *wav_buffer;1349513496/* Load the WAV */13497if( SDL_LoadWAV("test.wav", wav_spec, wav_buffer, wav_length) == NULL )13498{13499fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError());13500exit(-1);13501}13502.13503.13504.13505/* Do stuff with the WAV */13506.13507.13508/* Free It */13509SDL_FreeWAV(wav_buffer);13510</code>13511</example>13512<param name="file"></param>13513<param name="spec"></param>13514<param name="audio_buf"></param>13515<param name="audio_len"></param>13516<returns>IntPtr to SDL_AudioApec</returns>13517<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>13518<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13519<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeWAV(System.IntPtr@)"/>13520</member>13521<member name="M:Tao.Sdl.Sdl.SDL_FreeWAV(System.IntPtr@)">13522<summary>13523Frees previously opened WAV data.13524</summary>13525<remarks>13526After a WAVE file has been opened with <see cref="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)"/>13527its data can eventually be freed with SDL_FreeWAV. audio_buf is13528a pointer to the buffer created by SDL_LoadWAV.13529<p>13530<code>13531void SDL_FreeWAV(Uint8 *audio_buf)13532</code></p>13533</remarks>13534<param name="audio_buf"></param>13535<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)"/>13536</member>13537<member name="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.Int16,System.Byte,System.Int32,System.Int16,System.Byte,System.Int32)">13538<summary>13539Initializes a SDL_AudioCVT structure for conversion13540</summary>13541<remarks>13542Before an <see cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/> structure can be used to13543convert audio data it must be initialized with source and13544destination information.13545<p>src_format and dst_format are the source and destination13546format of the conversion. (For information on audio formats13547see <see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>). src_channels and dst_channels13548are the number of channels in the source and destination formats.13549Finally, src_rate and dst_rate are the frequency or13550samples-per-second of the source and destination formats.13551Once again, see <see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>.</p>13552<p>13553<code>13554int SDL_BuildAudioCVT(SDL_AudioCVT *cvt, Uint16 src_format, Uint8 src_channels, int src_rate, Uint16 dst_format, Uint8 dst_channels, int dst_rate)13555</code></p>13556</remarks>13557<example>13558See <see cref="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)"/>.13559</example>13560<param name="cvt"></param>13561<param name="src_format"></param>13562<param name="src_channels"></param>13563<param name="src_rate"></param>13564<param name="dst_format"></param>13565<param name="dst_channels"></param>13566<param name="dst_rate"></param>13567<returns>13568Returns -1 if the filter could not be built or 1 if it could.13569</returns>13570<seealso cref="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)"/>13571<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/>13572</member>13573<member name="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.UInt16,System.Byte,System.Int32,System.UInt16,System.Byte,System.Int32)">13574<summary>13575Initializes a SDL_AudioCVT structure for conversion13576</summary>13577<remarks>13578Before an <see cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/> structure can be used to13579convert audio data it must be initialized with source and13580destination information.13581<p>src_format and dst_format are the source and destination13582format of the conversion. (For information on audio formats13583see <see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>). src_channels and dst_channels13584are the number of channels in the source and destination formats.13585Finally, src_rate and dst_rate are the frequency or13586samples-per-second of the source and destination formats.13587Once again, see <see cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>.</p>13588<p>13589<code>13590int SDL_BuildAudioCVT(SDL_AudioCVT *cvt, Uint16 src_format, Uint8 src_channels, int src_rate, Uint16 dst_format, Uint8 dst_channels, int dst_rate)13591</code></p>13592</remarks>13593<example>13594See <see cref="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)"/>.13595</example>13596<param name="cvt"></param>13597<param name="src_format"></param>13598<param name="src_channels"></param>13599<param name="src_rate"></param>13600<param name="dst_format"></param>13601<param name="dst_channels"></param>13602<param name="dst_rate"></param>13603<returns>13604Returns -1 if the filter could not be built or 1 if it could.13605</returns>13606<seealso cref="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)"/>13607<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/>13608</member>13609<member name="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)">13610<summary>13611Convert audio data to a desired audio format.13612</summary>13613<remarks>13614SDL_ConvertAudio takes one parameter, cvt, which was previously13615initialized. Initilizing a <see cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/> is a two13616step process. First of all, the structure must be passed to13617<see cref="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.Int16,System.Byte,System.Int32,System.Int16,System.Byte,System.Int32)"/> along with source and destination13618format parameters. Secondly, the cvt->buf and cvt->len fields must13619be setup. cvt->buf should point to the audio data and cvt->len13620should be set to the length of the audio data in bytes.13621Remember, the length of the buffer pointed to by buf show be13622len*len_mult bytes in length.13623<p>Once the SDL_AudioCVTstructure is initilized then we can pass13624it to SDL_ConvertAudio, which will convert the audio data pointer13625to by cvt->buf. If SDL_ConvertAudio returned 0 then the conversion13626was completed successfully, otherwise -1 is returned.</p>13627<p>If the conversion completed successfully then the converted13628audio data can be read from cvt->buf. The amount of valid,13629converted, audio data in the buffer is equal to13630cvt->len*cvt->len_ratio.</p>13631<p>13632<code>13633int SDL_ConvertAudio(SDL_AudioCVT *cvt)13634</code></p>13635</remarks>13636<example>13637<code>13638/* Converting some WAV data to hardware format */13639void my_audio_callback(void *userdata, Uint8 *stream, int len);1364013641SDL_AudioSpec *desired, *obtained;13642SDL_AudioSpec wav_spec;13643SDL_AudioCVT wav_cvt;13644Uint32 wav_len;13645Uint8 *wav_buf;13646int ret;1364713648/* Allocated audio specs */13649desired = malloc(sizeof(SDL_AudioSpec));13650obtained = malloc(sizeof(SDL_AudioSpec));1365113652/* Set desired format */13653desired->freq=22050;13654desired->format=AUDIO_S16LSB;13655desired->samples=8192;13656desired->callback=my_audio_callback;13657desired->userdata=NULL;1365813659/* Open the audio device */13660if ( SDL_OpenAudio(desired, obtained) < 0 )13661{13662fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError());13663exit(-1);13664}1366513666free(desired);1366713668/* Load the test.wav */13669if( SDL_LoadWAV("test.wav", &wav_spec, &wav_buf, &wav_len) == NULL )13670{13671fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError());13672SDL_CloseAudio();13673free(obtained);13674exit(-1);1367513676/* Build AudioCVT */13677ret = SDL_BuildAudioCVT(&wav_cvt,13678wav_spec.format, wav_spec.channels, wav_spec.freq,13679obtained->format, obtained->channels, obtained->freq);1368013681/* Check that the convert was built */13682if(ret==-1)13683{13684fprintf(stderr, "Couldn't build converter!\n");13685SDL_CloseAudio();13686free(obtained);13687SDL_FreeWAV(wav_buf);13688}1368913690/* Setup for conversion */13691wav_cvt.buf = malloc(wav_len * wav_cvt.len_mult);13692wav_cvt.len = wav_len;13693memcpy(wav_cvt.buf, wav_buf, wav_len);1369413695/* We can delete to original WAV data now */13696SDL_FreeWAV(wav_buf);1369713698/* And now we're ready to convert */13699SDL_ConvertAudio(&wav_cvt);1370013701/* do whatever */13702.13703.13704.13705.13706</code>13707</example>13708<param name="cvt">13709IntPtr to <see cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/> struct.13710</param>13711<returns>13712If SDL_ConvertAudio returned 0 then the conversion13713was completed successfully, otherwise -1 is returned.13714</returns>13715<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/>13716<seealso cref="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.Int16,System.Byte,System.Int32,System.Int16,System.Byte,System.Int32)"/>13717</member>13718<member name="M:Tao.Sdl.Sdl.SDL_MixAudio(System.IntPtr,System.IntPtr,System.Int32,System.Int32)">13719<summary>13720Mix audio data.13721</summary>13722<remarks>13723This function takes two audio buffers of len bytes each of the13724playing audio format and mixes them, performing addition,13725volume adjustment, and overflow clipping. The volume ranges13726from 0 to SDL_MIX_MAXVOLUME and should be set to the maximum13727value for full audio volume. Note this does not change hardware13728volume. This is provided for convenience -- you can mix your13729own audio data.13730<p>Note: Do not use this function for mixing together more than two13731streams of sample data. The output from repeated application of13732this function may be distorted by clipping, because there is no13733accumulator with greater range than the input (not to mention this13734being an inefficient way of doing it). Use mixing functions from13735SDL_mixer, OpenAL, or write your own mixer instead.</p>13736<p>13737<code>13738void SDL_MixAudio(Uint8 *dst, Uint8 *src, Uint32 len, int volume)13739</code></p>13740</remarks>13741<param name="dst"></param>13742<param name="src"></param>13743<param name="len"></param>13744<param name="volume"></param>13745<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13746</member>13747<member name="M:Tao.Sdl.Sdl.SDL_MixAudio(System.IntPtr,System.IntPtr,System.UInt32,System.Int32)">13748<summary>13749Mix audio data.13750</summary>13751<remarks>13752This function takes two audio buffers of len bytes each of the13753playing audio format and mixes them, performing addition,13754volume adjustment, and overflow clipping. The volume ranges13755from 0 to SDL_MIX_MAXVOLUME and should be set to the maximum13756value for full audio volume. Note this does not change hardware13757volume. This is provided for convenience -- you can mix your13758own audio data.13759<p>Note: Do not use this function for mixing together more than two13760streams of sample data. The output from repeated application of13761this function may be distorted by clipping, because there is no13762accumulator with greater range than the input (not to mention this13763being an inefficient way of doing it). Use mixing functions from13764SDL_mixer, OpenAL, or write your own mixer instead.</p>13765<p>13766<code>13767void SDL_MixAudio(Uint8 *dst, Uint8 *src, Uint32 len, int volume)13768</code></p>13769</remarks>13770<param name="dst"></param>13771<param name="src"></param>13772<param name="len"></param>13773<param name="volume"></param>13774<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13775</member>13776<member name="M:Tao.Sdl.Sdl.SDL_LockAudio">13777<summary>13778Lock out the callback function.13779</summary>13780<remarks>13781The lock manipulated by these functions protects the callback13782function. During a LockAudio period, you can be guaranteed13783that the callback function is not running. Do not call these13784from the callback function or you will cause deadlock.13785<p>Binds to C-function call in SDL_audio.h:13786<code>13787void SDL_LockAudio(void);13788</code>13789</p>13790</remarks>13791<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13792</member>13793<member name="M:Tao.Sdl.Sdl.SDL_UnlockAudio">13794<summary>13795Unlock the callback function13796</summary>13797<remarks>13798Unlocks a previous <see cref="M:Tao.Sdl.Sdl.SDL_LockAudio"/> call.13799<p>Binds to C-function call in SDL_audio.h:13800<code>13801void SDL_UnlockAudio(void)13802</code>13803</p>13804</remarks>13805<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13806</member>13807<member name="M:Tao.Sdl.Sdl.SDL_CloseAudio">13808<summary>13809Shuts down audio processing and closes the audio device.13810</summary>13811<remarks>13812This function shuts down audio processing and closes the audio13813device.13814<p>Binds to C-function call in SDL_audio.h:13815<code>13816void SDL_CloseAudio(void)13817</code>13818</p>13819</remarks>13820<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>13821</member>13822<member name="M:Tao.Sdl.Sdl.CD_INDRIVE(System.Int32)">13823<summary>13824Given a status, returns true if there's a disk in the drive.13825</summary>13826<remarks>13827<p>Binds to C-macro call in SDL_cdrom.h:13828<code>#define CD_INDRIVE(status) ((int)status > 0)13829</code></p>13830</remarks>13831<param name="status">CDstatus enum</param>13832<returns>Returns 1 if true and 0 if false</returns>13833</member>13834<member name="M:Tao.Sdl.Sdl.FRAMES_TO_MSF(System.Int32,System.Int32@,System.Int32@,System.Int32@)">13835<summary>13836Conversion function from frames to Minute/Second/Frames.13837</summary>13838<remarks>13839<p>Binds to C-macro call in SDL_cdrom.h:13840<code>#define FRAMES_TO_MSF(f, M,S,F) {13841int value = f;13842*(F) = value%CD_FPS;13843value /= CD_FPS;13844*(S) = value%60;13845value /= 60;13846*(M) = value;13847}13848</code></p>13849</remarks>13850<param name="frames">Frames</param>13851<param name="M">Minutes</param>13852<param name="S">Seconds</param>13853<param name="F">Frames (remainder)</param>13854<seealso cref="F:Tao.Sdl.Sdl.CD_FPS"/>13855</member>13856<member name="M:Tao.Sdl.Sdl.MSF_TO_FRAMES(System.Int32,System.Int32,System.Int32)">13857<summary>13858Conversion function from Minute/Second/Frames to frames.13859</summary>13860<remarks>13861<p>Binds to C-macro call in SDL_cdrom.h:13862<code>#define MSF_TO_FRAMES(M, S, F) ((M)*60*CD_FPS+(S)*CD_FPS+(F))13863</code></p>13864</remarks>13865<param name="M">Minutes</param>13866<param name="S">Seconds</param>13867<param name="F">Frames</param>13868<seealso cref="F:Tao.Sdl.Sdl.CD_FPS"/>13869</member>13870<member name="M:Tao.Sdl.Sdl.SDL_CDNumDrives">13871<summary>13872Returns the number of CD-ROM drives on the13873system.13874</summary>13875<remarks>13876Returns the number of CD-ROM drives on the system,13877or -1 if SDL_Init() has not been called with the SDL_INIT_CDROM13878flag.13879<p>Binds to C-function call in SDL_cdrom.h:13880<code>int SDL_CDNumDrives(void)13881</code></p>13882</remarks>13883<returns>Returns the number of CD-ROM drives on the system,13884or -1 if SDL_Init() has not been called with the SDL_INIT_CDROM13885flag.13886</returns>13887<seealso cref="M:Tao.Sdl.Sdl.SDL_CDOpen(System.Int32)"/>13888</member>13889<member name="M:Tao.Sdl.Sdl.SDL_CDName(System.Int32)">13890<summary>13891Returns a human-readable, system-dependent identifier for the13892CD-ROM.13893</summary>13894<remarks>13895Drive is the index of the drive. Drive indices start to 0 and end13896at SDL_CDNumDrives()-1.13897<p>Binds to C-function in SDL_cdrom.h13898<code>const char *SDL_CDName(int drive);13899</code></p>13900</remarks>13901<example>13902Example:13903"/dev/cdrom"13904"E:"13905"/dev/disk/ide/1/master"13906</example>13907<param name="drive"></param>13908<returns>13909Returns a human-readable, system-dependent identifier for the13910CD-ROM.13911</returns>13912<seealso cref="M:Tao.Sdl.Sdl.SDL_CDNumDrives"/>13913</member>13914<member name="M:Tao.Sdl.Sdl.SDL_CDOpen(System.Int32)">13915<summary>13916Opens a CD-ROM drive for access.13917</summary>13918<remarks>13919Opens a CD-ROM drive for access. It returns a13920<see cref="T:Tao.Sdl.Sdl.SDL_CD"/> structure13921on success, or NULL if the drive was invalid or busy. This13922newly opened CD-ROM becomes the default CD used when other13923CD functions are passed a NULL CD-ROM handle.13924<p>Drives are numbered starting with 0. Drive 0 is the system13925default CD-ROM.</p>13926<p>Binds to C-function in SDL_cdrom.h13927<code>SDL_CD *SDL_CDOpen(int drive)13928</code></p>13929</remarks>13930<example>13931<code>13932SDL_CD *cdrom;13933int cur_track;13934int min, sec, frame;13935SDL_Init(SDL_INIT_CDROM);13936atexit(SDL_Quit);1393713938/* Check for CD drives */13939if(!SDL_CDNumDrives())13940{13941/* None found */13942fprintf(stderr, "No CDROM devices available\n");13943exit(-1);13944}1394513946/* Open the default drive */13947cdrom=SDL_CDOpen(0);1394813949/* Did if open? Check if cdrom is NULL */13950if(!cdrom)13951{13952fprintf(stderr, "Couldn't open drive: %s\n", SDL_GetError());13953exit(-1);13954}1395513956/* Print Volume info */13957printf("Name: %s\n", SDL_CDName(0));13958printf("Tracks: %d\n", cdrom->numtracks);13959for(cur_track=0;cur_track < cdrom->numtracks; cur_track++)13960{13961FRAMES_TO_MSF(cdrom->track[cur_track].length, &min, &sec, &frame);13962printf("\tTrack %d: Length %d:%d\n", cur_track, min, sec);13963}1396413965SDL_CDClose(cdrom);13966</code>13967</example>13968<param name="drive"></param>13969<returns>It returns a SDL_CD structure13970on success, or NULL if the drive was invalid or busy.13971</returns>13972<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>13973<seealso cref="T:Tao.Sdl.Sdl.SDL_CDtrack"/>13974<seealso cref="M:Tao.Sdl.Sdl.SDL_CDClose(System.IntPtr)"/>13975</member>13976<member name="M:Tao.Sdl.Sdl.SDL_CDStatus(System.IntPtr)">13977<summary>13978This function returns the current status of the given drive.13979</summary>13980<remarks>13981If the drive has a CD in it,13982the table of contents of the CD and current play position13983of the CD will be stored in the SDL_CD structure.13984<p>13985The macro CD_INDRIVE is provided for convenience,13986and given a status returns true if there's a disk13987in the drive.</p>13988<p>Note: SDL_CDStatus also updates the <see cref="T:Tao.Sdl.Sdl.SDL_CD"/>13989structure passed to it.</p>13990<p>Binds to C-function in SDL_cdrom.h13991<code>CDstatus SDL_CDStatus(SDL_CD *cdrom);13992</code></p>13993</remarks>13994<example>13995<code>13996int playTrack(int track)13997{13998int playing = 0;1399914000if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )14001{14002/* clamp to the actual number of tracks on the CD */14003if (track >= cdrom->numtracks)14004{14005track = cdrom->numtracks-1;14006}1400714008if ( SDL_CDPlayTracks(cdrom, track, 0, 1, 0) == 0 )14009{14010playing = 1;14011}14012}14013return playing;14014}14015</code>14016</example>14017<param name="cdrom"></param>14018<returns>CDstatus enum</returns>14019<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>14020</member>14021<member name="M:Tao.Sdl.Sdl.SDL_CDPlay(System.IntPtr,System.Int32,System.Int32)">14022<summary>14023Play a CD.14024</summary>14025<remarks>14026Plays the given cdrom, starting a frame start for length frames.14027<p>Binds to C-function in SDL_cdrom.h14028<code>int SDL_CDPlay(SDL_CD *cdrom, int start, int length)14029</code></p>14030</remarks>14031<param name="cdrom"></param>14032<param name="start"></param>14033<param name="length"></param>14034<returns>It returns 0, or -1 if there was an error.</returns>14035<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPlayTracks(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)"/>14036<seealso cref="M:Tao.Sdl.Sdl.SDL_CDStop(System.IntPtr)"/>14037</member>14038<member name="M:Tao.Sdl.Sdl.SDL_CDPlayTracks(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)">14039<summary>14040Play the given CD track(s).14041</summary>14042<remarks>14043SDL_CDPlayTracks plays the given CD starting at track start_track,14044for ntracks tracks.14045<p>start_frame is the frame offset, from the beginning of the14046start_track, at which to start. nframes is the frame offset,14047from the beginning of the last track (start_track+ntracks), at14048which to end playing.</p>14049<p>SDL_CDPlayTracks should only be called after calling14050<see cref="M:Tao.Sdl.Sdl.SDL_CDStatus(System.IntPtr)"/> to get track information about14051the CD.</p>14052<p>Note: Data tracks are ignored.</p>14053<p>Binds to C-function in SDL_cdrom.h14054<code>int SDL_CDPlayTracks(SDL_CD *cdrom, int start_track, int start_frame, int ntracks, int nframes))14055</code></p>14056</remarks>14057<example>14058<code>14059/* assuming cdrom is a previously opened device */14060/* Play the entire CD */14061if(CD_INDRIVE(SDL_CDStatus(cdrom)))14062SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);1406314064/* Play the first track */14065if(CD_INDRIVE(SDL_CDStatus(cdrom)))14066SDL_CDPlayTracks(cdrom, 0, 0, 1, 0);1406714068/* Play first 15 seconds of the 2nd track */14069if(CD_INDRIVE(SDL_CDStatus(cdrom)))14070SDL_CDPlayTracks(cdrom, 1, 0, 0, CD_FPS*15);14071</code>14072</example>14073<param name="cdrom"></param>14074<param name="start_track"></param>14075<param name="start_frame"></param>14076<param name="ntracks"></param>14077<param name="nframes"></param>14078<returns>Returns 0, or -1 if there was an error.</returns>14079<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPlay(System.IntPtr,System.Int32,System.Int32)"/>14080<seealso cref="M:Tao.Sdl.Sdl.SDL_CDStatus(System.IntPtr)"/>14081<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>14082</member>14083<member name="M:Tao.Sdl.Sdl.SDL_CDPause(System.IntPtr)">14084<summary>14085Pauses a CDROM.14086</summary>14087<remarks>14088Pauses play on the given cdrom.14089<p>Binds to C-function in SDL_cdrom.h14090<code>int SDL_CDPause(SDL_CD *cdrom)14091</code></p>14092</remarks>14093<param name="cdrom"></param>14094<returns>Returns 0, or -1 on error.</returns>14095<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPlay(System.IntPtr,System.Int32,System.Int32)"/>14096<seealso cref="M:Tao.Sdl.Sdl.SDL_CDResume(System.IntPtr)"/>14097</member>14098<member name="M:Tao.Sdl.Sdl.SDL_CDResume(System.IntPtr)">14099<summary>14100Resumes a CDROM.14101</summary>14102<remarks>14103Resumes play on the given cdrom.14104<p>Binds to C-function in SDL_cdrom.h14105<code>int SDL_CDResume(SDL_CD *cdrom)14106</code></p>14107</remarks>14108<param name="cdrom"></param>14109<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPlay(System.IntPtr,System.Int32,System.Int32)"/>14110<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPause(System.IntPtr)"/>14111<returns>Returns 0, or -1 on error.</returns>14112</member>14113<member name="M:Tao.Sdl.Sdl.SDL_CDStop(System.IntPtr)">14114<summary>14115Stops a CDROM.14116</summary>14117<remarks>14118Stops play on the given cdrom.14119<p>Binds to C-function in SDL_cdrom.h14120<code>int SDL_CDStop(SDL_CD *cdrom)14121</code></p>14122</remarks>14123<param name="cdrom"></param>14124<returns>Returns 0, or -1 on error.</returns>14125<seealso cref="M:Tao.Sdl.Sdl.SDL_CDPlay(System.IntPtr,System.Int32,System.Int32)"/>14126</member>14127<member name="M:Tao.Sdl.Sdl.SDL_CDEject(System.IntPtr)">14128<summary>14129Ejects a CDROM.14130</summary>14131<remarks>14132Ejects the given cdrom.14133<p>Binds to C-function in SDL_cdrom.h14134<code>int SDL_CDEject(SDL_CD *cdrom)14135</code></p>14136</remarks>14137<param name="cdrom"></param>14138<returns>Returns 0, or -1 on error.</returns>14139<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>14140</member>14141<member name="M:Tao.Sdl.Sdl.SDL_CDClose(System.IntPtr)">14142<summary>14143Closes a SDL_CD handle.14144</summary>14145<remarks>14146Closes the given cdrom handle.14147<p>Binds to C-function in SDL_cdrom.h14148<code>void SDL_CDClose(SDL_CD *cdrom);14149</code></p>14150</remarks>14151<param name="cdrom"></param>14152<seealso cref="M:Tao.Sdl.Sdl.SDL_CDOpen(System.Int32)"/>14153<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>14154</member>14155<member name="M:Tao.Sdl.Sdl.SDL_HasRDTSC">14156<summary>14157This function returns true if the CPU has the RDTSC instruction.14158</summary>14159<remarks>14160<p>Binds to C-function call in SDL_cpuinfo.h:14161<code>extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void)</code>14162</p>14163</remarks>14164<returns>Returns SDL_TRUE if the CPU has the RDTSC instruction.</returns>14165</member>14166<member name="M:Tao.Sdl.Sdl.SDL_HasMMX">14167<summary>14168This function returns true if the CPU has MMX features.14169</summary>14170<remarks>14171<p>Binds to C-function call in SDL_cpuinfo.h:14172<code>extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void)</code>14173</p>14174</remarks>14175<returns>Returns SDL_TRUE if the CPU has MMX features.</returns>14176</member>14177<member name="M:Tao.Sdl.Sdl.SDL_HasMMXExt">14178<summary>14179This function returns true if the CPU has MMX Ext. features.14180</summary>14181<remarks>14182<p>Binds to C-function call in SDL_cpuinfo.h:14183<code>extern DECLSPEC SDL_bool SDLCALL SDL_HasMMXExt(void)</code>14184</p>14185</remarks>14186<returns>Returns SDL_TRUE if the CPU has MMX Ext. features.</returns>14187</member>14188<member name="M:Tao.Sdl.Sdl.SDL_Has3DNow">14189<summary>14190This function returns true if the CPU has 3DNow features14191</summary>14192<remarks>14193<p>Binds to C-function call in SDL_cpuinfo.h:14194<code>extern DECLSPEC SDL_bool SDLCALL SDL_SDL_Has3DNow(void)</code>14195</p>14196</remarks>14197<returns>Returns SDL_TRUE if the CPU has 3DNow features.</returns>14198</member>14199<member name="M:Tao.Sdl.Sdl.SDL_HasSSE">14200<summary>14201This function returns true if the CPU has SSE features14202</summary>14203<remarks>14204<p>Binds to C-function call in SDL_cpuinfo.h:14205<code>extern DECLSPEC SDL_bool SDLCALL SDL_SDL_HasSSE(void)</code>14206</p>14207</remarks>14208<returns>Returns SDL_TRUE if the CPU has SSE features.</returns>14209</member>14210<member name="M:Tao.Sdl.Sdl.SDL_HasSSE2">14211<summary>14212This function returns true if the CPU has SSE2 features14213</summary>14214<remarks>14215<p>Binds to C-function call in SDL_cpuinfo.h:14216<code>extern DECLSPEC SDL_bool SDLCALL SDL_SDL_HasSSE2void()</code>14217</p>14218</remarks>14219<returns>Returns SDL_TRUE if the CPU has SSE2 features.</returns>14220</member>14221<member name="M:Tao.Sdl.Sdl.SDL_HasAltiVec">14222<summary>14223This function returns true if the CPU has AltiVec features14224</summary>14225<remarks>14226<p>Binds to C-function call in SDL_cpuinfo.h:14227<code>extern DECLSPEC SDL_bool SDLCALL SDL_SDL_HasAltiVec(void)</code>14228</p>14229</remarks>14230<returns>Returns SDL_TRUE if the CPU has AltiVec features.</returns>14231</member>14232<member name="M:Tao.Sdl.Sdl.SDL_SetError(System.String)">14233<summary>14234Sets an SDL error string.14235</summary>14236<param name="message">14237The error message to set.14238</param>14239<remarks>14240<p>Binds to C-function call in SDL_error.h:14241<code>extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...)</code>14242</p>14243</remarks>14244</member>14245<member name="M:Tao.Sdl.Sdl.SDL_GetError">14246<summary>14247Gets an SDL error string.14248</summary>14249<returns>14250A string containing information about the last internal SDL error.14251</returns>14252<remarks>14253<p>Binds to C-function call in SDL_error.h:14254<code>extern DECLSPEC char * SDLCALL SDL_GetError(void)</code>14255</p>14256</remarks>14257</member>14258<member name="M:Tao.Sdl.Sdl.SDL_ClearError">14259<summary>14260Clears the SDL error.14261</summary>14262<remarks>14263<p>14264Binds to C-function call in SDL_error.h:14265<code>extern DECLSPEC void SDLCALL SDL_ClearError(void)</code>14266</p>14267</remarks>14268</member>14269<member name="M:Tao.Sdl.Sdl.SDL_PumpEvents">14270<summary>14271Pumps the event loop, gathering events from the input devices.14272</summary>14273<remarks>14274Pumps the event loop, gathering events from the input devices.14275<p>SDL_PumpEvents gathers all the pending input information from14276devices and places it on the event queue. Without calls to14277SDL_PumpEvents no events would ever be placed on the queue.14278Often calls the need for SDL_PumpEvents is hidden from the user14279since <see cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/> and <see cref="M:Tao.Sdl.Sdl.SDL_WaitEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14280implicitly call SDL_PumpEvents. However, if you are not polling or14281waiting for events (e.g. you are filtering them), then you must14282call SDL_PumpEvents to force an event queue update.14283</p>14284<p>Note: You can only call this function in the thread that set the video mode.</p>14285<p>Binds to C-function in SDL_events.h14286<code>14287void SDL_PumpEvents(void);14288</code></p>14289</remarks>14290<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14291</member>14292<member name="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)">14293<summary>14294Checks the event queue for messages and optionally returns them.14295</summary>14296<remarks>14297Checks the event queue for messages and optionally returns them.14298<p>If action is SDL_ADDEVENT, up to numevents events will be added14299to the back of the event queue.</p>14300<p>If action is SDL_PEEKEVENT, up to numevents events at the front14301of the event queue, matching mask, will be returned and14302will not be removed from the queue.</p>14303<p>If action is SDL_GETEVENT, up to numevents events at the front14304of the event queue, matching mask, will be returned and14305will be removed from the queue.</p>14306<p>14307The mask parameter is an bitwise OR of SDL_EVENTMASK(event_type),14308for all event types you are interested in.14309</p>14310<p>This function is thread-safe.</p>14311<p>Binds to C-function in SDL_events.h14312<code>14313int SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, Uint32 mask);14314</code></p>14315</remarks>14316<param name="events"></param>14317<param name="numevents"></param>14318<param name="action">SDL_eventaction enum</param>14319<param name="mask"></param>14320<returns>14321This function returns the number of events actually stored,14322or -1 if there was an error.14323</returns>14324<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14325<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14326<seealso cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14327</member>14328<member name="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.UInt32)">14329<summary>14330Checks the event queue for messages and optionally returns them.14331</summary>14332<remarks>14333Checks the event queue for messages and optionally returns them.14334<p>If action is SDL_ADDEVENT, up to numevents events will be added14335to the back of the event queue.</p>14336<p>If action is SDL_PEEKEVENT, up to numevents events at the front14337of the event queue, matching mask, will be returned and14338will not be removed from the queue.</p>14339<p>If action is SDL_GETEVENT, up to numevents events at the front14340of the event queue, matching mask, will be returned and14341will be removed from the queue.</p>14342<p>14343The mask parameter is an bitwise OR of SDL_EVENTMASK(event_type),14344for all event types you are interested in.14345</p>14346<p>This function is thread-safe.</p>14347<p>Binds to C-function in SDL_events.h14348<code>14349int SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, Uint32 mask);14350</code></p>14351</remarks>14352<param name="events"></param>14353<param name="numevents"></param>14354<param name="action">SDL_eventaction enum</param>14355<param name="mask"></param>14356<returns>14357This function returns the number of events actually stored,14358or -1 if there was an error.14359</returns>14360<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14361<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14362<seealso cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14363</member>14364<member name="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)">14365<summary>14366Polls for currently pending events.14367</summary>14368<remarks>14369Polls for currently pending events,14370and returns 1 if there are any pending events, or 0 if there14371are none available.14372<p>If event is not NULL, the next event is removed from the14373queue and stored in that area.</p>14374<p>Binds to C-function in SDL_events.h14375<code>int SDL_PollEvent(SDL_Event *event);14376</code>14377</p>14378</remarks>14379<example>14380<code>14381SDL_Event event; /* Event structure */1438214383.14384.14385.14386/* Check for events */14387while(SDL_PollEvent(&event))14388{ /* Loop until there are no events left on the queue */14389switch(event.type)14390{ /* Process the appropiate event type */14391case SDL_KEYDOWN: /* Handle a KEYDOWN event */14392printf("Oh! Key press\n");14393break;14394case SDL_MOUSEMOTION:14395.14396.14397.14398default: /* Report an unhandled event */14399printf("I don't know what this event is!\n");14400}14401}14402</code>14403</example>14404<param name="sdlEvent"></param>14405<returns>Returns 1 if there are any pending events,14406or 0 if there14407are none available</returns>14408<seealso cref="M:Tao.Sdl.Sdl.SDL_WaitEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14409<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14410<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>14411</member>14412<member name="M:Tao.Sdl.Sdl.SDL_WaitEvent(Tao.Sdl.Sdl.SDL_Event@)">14413<summary>14414Waits indefinitely for the next available event.14415</summary>14416<remarks>14417Waits indefinitely for the next available event, returning 1,14418or 0 if there14419was an error while waiting for events.14420<p>If 'event' is not NULL,14421the next14422event is removed from the queue and stored in that area.</p>14423<p>Binds to C-function in SDL_events.h14424<code>int SDL_WaitEvent(SDL_Event *event);14425</code></p>14426</remarks>14427<param name="evt"></param>14428<returns>Returns 1, or 0 if there was an14429error while waiting for events</returns>14430<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14431<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14432</member>14433<member name="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)">14434<summary>14435Pushes an event onto the event queue.14436</summary>14437<remarks>14438The event queue can actually be used as a two way communication14439channel. Not only can events be read from the queue, but the user14440can also push their own events onto it. event is a pointer to the14441event structure you wish to push onto the queue.14442<p>Note: Pushing device input events onto the queue doesn't modify14443the state of the device within SDL.</p>14444<p>Binds to C-function in SDL_events.h14445<code>int SDL_PushEvent(SDL_Event *event)14446</code></p></remarks>14447<param name="evt"></param>14448<returns>14449Returns 0 on success or -1 if the event couldn't be pushed.14450</returns>14451<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14452<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14453<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>14454</member>14455<member name="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)">14456<summary>14457Sets up a filter to process all events before14458they are posted to the event queue.14459</summary>14460<remarks>14461This function sets up a filter to process all events14462before they are posted to the event queue. This is a very powerful14463and flexible feature. The filter is prototyped as:14464<p><code>typedef int (*SDL_EventFilter)(const SDL_Event *event);14465</code></p>14466<p>If the filter returns 1, then the event will be added to the14467internal queue. If it returns 0, then the event will be dropped14468from the queue. This allows selective filtering of dynamically.14469</p>14470<p>There is one caveat when dealing with the SDL_QUITEVENT event14471type. The event filter is only called when the window manager14472desires to close the application window. If the event filter returns144731, then the window will be closed, otherwise the window will remain14474open if possible. If the quit event is generated by an interrupt14475signal, it will bypass the internal queue and be delivered to the14476application at the next event poll.</p>14477<p>Note: Events pushed onto the queue with14478<see cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/> or <see cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>14479do not get passed through the event filter.</p>14480<p>Note: Be Careful! The event filter function may run in a14481different thread so be careful what you do within it.</p>14482<p>Binds to C-function in SDL_events.h14483<code>void SDL_SetEventFilter(SDL_EventFilter filter);14484</code></p>14485</remarks>14486<param name="filter"></param>14487<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14488<seealso cref="M:Tao.Sdl.Sdl.SDL_GetEventFilter"/>14489<seealso cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>14490</member>14491<member name="M:Tao.Sdl.Sdl.SDL_GetEventFilter">14492<summary>14493Retrieves a pointer to the event filter14494</summary>14495<remarks>14496This function retrieces a pointer to the event filter that was14497previously set using <see cref="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)"/>.14498An SDL_EventFilter function is defined as:14499<p>14500<code>14501typedef int (*SDL_EventFilter)(const SDL_Event *event);14502</code></p>14503<p>Binds to C-function in SDL_events.h14504<code>SDL_EventFilter SDL_GetEventFilter(void);14505</code></p></remarks>14506<returns>14507Returns a pointer to the event filter or14508NULL if no filter has been set.14509</returns>14510<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14511<seealso cref="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)"/>14512</member>14513<member name="M:Tao.Sdl.Sdl.SDL_EventState(System.Byte,System.Int32)">14514<summary>14515This function allows you to set the state of processing certain14516events.14517</summary>14518<remarks>14519This function allows you to set the state of14520processing certain event type's.14521<p>If 'state' is set to SDL_IGNORE, that event will be14522automatically14523dropped14524from the event queue and will not be filtered.</p>14525<p>14526If 'state' is set to SDL_ENABLE, that event will be processed14527normally.</p>14528<p>If 'state' is set to SDL_QUERY, SDL_EventState will return the14529current processing state of the specified event type.</p>14530<p>A list of event type's can be found in the14531<see cref="T:Tao.Sdl.Sdl.SDL_Event"/>14532section.</p>14533</remarks>14534<param name="type"></param>14535<param name="state"></param>14536<returns>14537Returns 0 on success or -1 if the event couldn't be pushed.14538</returns>14539<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>14540</member>14541<member name="M:Tao.Sdl.Sdl.SDL_NumJoysticks">14542<summary>14543Count the number of joysticks attached to the system.14544</summary>14545<remarks>14546Counts the number of joysticks attached to the system.14547<p>Binds to C-function in SDL_joystick.h14548<code>int SDL_NumJoysticks(void)14549</code></p>14550</remarks>14551<returns>14552Returns the number of attached joysticks14553</returns>14554<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickName(System.Int32)"/>14555<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14556</member>14557<member name="M:Tao.Sdl.Sdl.SDL_JoystickName(System.Int32)">14558<summary>14559Get joystick name.14560</summary>14561<remarks>14562Get the implementation dependent name of joystick.14563The index parameter refers to the N'th joystick on the system.14564<p>Binds to C-function in SDL_joystick.h14565<code>const char *SDL_JoystickName(int index)14566</code></p>14567</remarks>14568<param name="device_index"></param>14569<returns>14570Returns a string containing the joystick name.14571</returns>14572<example>14573<code>14574/* Print the names of all attached joysticks */14575int num_joy, i;14576num_joy=SDL_NumJoysticks();14577printf("%d joysticks found\n", num_joy);14578for(i=0;i<num_joy;i++)14579printf("%s\n", SDL_JoystickName(i));14580</code>14581</example>14582<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14583</member>14584<member name="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)">14585<summary>14586Open a joystick for use.14587</summary>14588<remarks>14589Opens a joystick for use within SDL.14590The index refers to the N'th joystick in the system.14591A joystick must be opened before it game be used.14592<p>Binds to C-function in SDL_joystick.h14593<code>14594</code></p>14595</remarks>14596<param name="device_index"></param>14597<returns>14598Returns a IntPtr to a SDL_Joystick structure on success.14599NULL on failure.14600</returns>14601<example>14602<code>14603SDL_Joystick *joy;14604Check for joystick14605if(SDL_NumJoysticks()>0)14606{14607// Open joystick14608joy=SDL_JoystickOpen(0);1460914610if(joy)14611{14612printf("Opened Joystick 0\n");14613printf("Name: %s\n", SDL_JoystickName(0));14614printf("Number of Axes: %d\n", SDL_JoystickNumAxes(joy));14615printf("Number of Buttons: %d\n", SDL_JoystickNumButtons(joy));14616printf("Number of Balls: %d\n", SDL_JoystickNumBalls(joy));14617}14618else14619printf("Couldn't open Joystick 0\n");1462014621// Close if opened14622if(SDL_JoystickOpened(0))14623SDL_JoystickClose(joy);14624}14625</code>14626</example>14627<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickClose(System.IntPtr)"/>14628</member>14629<member name="M:Tao.Sdl.Sdl.SDL_JoystickOpened(System.Int32)">14630<summary>14631Determine if a joystick has been opened.14632</summary>14633<remarks>14634Determines whether a joystick has already been opened14635within the application. index refers to the N'th joystick14636on the system.14637<p>Binds to C-function in SDL_joystick.h14638<code>int SDL_JoystickOpened(int index)14639</code></p>14640</remarks>14641<param name="device_index"></param>14642<returns>14643Returns 1 if the joystick has been opened, or 0 if it has not.14644</returns>14645<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14646<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickClose(System.IntPtr)"/>14647</member>14648<member name="M:Tao.Sdl.Sdl.SDL_JoystickIndex(System.IntPtr)">14649<summary>14650Get the index of an SDL_Joystick.14651</summary>14652<remarks>14653Returns the index of a given SDL_Joystick structure.14654<p>Binds to C-function in SDL_joystick.h14655<code>int SDL_JoystickIndex(SDL_Joystick *joystick)14656</code></p>14657</remarks>14658<param name="joystick"></param>14659<returns>14660Index number of the joystick.14661</returns>14662<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14663</member>14664<member name="M:Tao.Sdl.Sdl.SDL_JoystickNumAxes(System.IntPtr)">14665<summary>14666Get the number of joystick axes14667</summary>14668<remarks>14669Return the number of axes available from a14670previously opened SDL_Joystick.14671<p>Binds to C-function in SDL_joystick.h14672<code>int SDL_JoystickNumAxes(SDL_Joystick *joystick)14673</code></p>14674</remarks>14675<param name="joystick"></param>14676<returns>14677Number of axes.14678</returns>14679<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14680<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetAxis(System.IntPtr,System.Int32)"/>14681</member>14682<member name="M:Tao.Sdl.Sdl.SDL_JoystickNumBalls(System.IntPtr)">14683<summary>14684Get the number of joystick trackballs14685</summary>14686<remarks>14687Return the number of trackballs available from a14688previously opened SDL_Joystick.14689<p>Binds to C-function in SDL_joystick.h14690<code>int SDL_JoystickNumBalls(SDL_Joystick *joystick)14691</code></p>14692</remarks>14693<param name="joystick"></param>14694<returns>14695Number of trackballs.14696</returns>14697<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14698<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetBall(System.IntPtr,System.Int32,System.Int32@,System.Int32@)"/>14699</member>14700<member name="M:Tao.Sdl.Sdl.SDL_JoystickNumHats(System.IntPtr)">14701<summary>14702Get the number of joystick hats.14703</summary>14704<remarks>14705<p>Binds to C-function in SDL_joystick.h14706<code>int SDL_JoystickNumHats(SDL_Joystick *joystick);14707</code></p>14708</remarks>14709Return the number of hats available from a previously14710opened SDL_Joystick.14711<param name="joystick"></param>14712<returns>14713Number of hats.14714</returns>14715<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14716<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetHat(System.IntPtr,System.Int32)"/>14717</member>14718<member name="M:Tao.Sdl.Sdl.SDL_JoystickNumButtons(System.IntPtr)">14719<summary>14720Get the number of joystick buttons.14721</summary>14722<remarks>14723Return the number of buttons available from a14724previously opened SDL_Joystick.14725<p>Binds to C-function in SDL_joystick.h14726<code>int SDL_JoystickNumButtons(SDL_Joystick *joystick)14727</code></p>14728</remarks>14729<param name="joystick"></param>14730<returns>14731Number of buttons.14732</returns>14733<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14734<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetButton(System.IntPtr,System.Int32)"/>14735</member>14736<member name="M:Tao.Sdl.Sdl.SDL_JoystickUpdate">14737<summary>14738Updates the state of all joysticks.14739</summary>14740<remarks>14741Updates the state(position, buttons, etc.) of all open joysticks.14742If joystick events have been enabled with14743<see cref="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)"/>14744then this is called automatically in the event loop.14745<p>Binds to C-function in SDL_joystick.h14746<code>void SDL_JoystickUpdate(void)14747</code></p>14748</remarks>14749<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14750<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetButton(System.IntPtr,System.Int32)"/>14751</member>14752<member name="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)">14753<summary>14754Enable/disable joystick event polling14755</summary>14756<remarks>14757This function is used to enable or disable joystick event14758processing. With joystick event processing disabled you will14759have to update joystick states with SDL_JoystickUpdate and14760read the joystick information manually. state is either14761SDL_QUERY, SDL_ENABLE or SDL_IGNORE.14762<p>14763Note: Joystick event handling is preferred14764</p>14765<p>Binds to C-function in SDL_joystick.h14766<code>int SDL_JoystickEventState(int state)14767</code></p>14768</remarks>14769<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14770<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetButton(System.IntPtr,System.Int32)"/>14771<returns>14772If state is SDL_QUERY then the current state is returned,14773otherwise the new processing state is returned.14774</returns>14775<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickUpdate"/>14776<seealso cref="T:Tao.Sdl.Sdl.SDL_JoyAxisEvent"/>14777<seealso cref="T:Tao.Sdl.Sdl.SDL_JoyBallEvent"/>14778<seealso cref="T:Tao.Sdl.Sdl.SDL_JoyButtonEvent"/>14779<seealso cref="T:Tao.Sdl.Sdl.SDL_JoyHatEvent"/>14780</member>14781<member name="M:Tao.Sdl.Sdl.SDL_JoystickGetAxis(System.IntPtr,System.Int32)">14782<summary>14783Get the current state of an axis.14784</summary>14785<remarks>14786SDL_JoystickGetAxis returns the current state of the14787given axis on the given joystick.14788<p>On most modern joysticks the X axis is usually represented14789by axis 0 and the Y axis by axis 1. The value returned by14790SDL_JoystickGetAxis is a signed integer (-32768 to 32768)14791representing the current position of the axis, it maybe necessary14792to impose certain tolerances on these values to account for14793jitter. It is worth noting that some joysticks use axes 2 and147943 for extra buttons.</p>14795<p>Binds to C-function in SDL_joystick.h14796<code>Sint16 SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis);14797</code></p>14798</remarks>14799<param name="joystick"></param>14800<param name="axis"></param>14801<returns>14802Returns a short representing the current position of the axis.14803</returns>14804<example>14805<code>14806Sint16 x_move, y_move;14807SDL_Joystick *joy1;14808.14809.14810x_move=SDL_JoystickGetAxis(joy1, 0);14811y_move=SDL_JoystickGetAxis(joy1, 1);14812</code>14813</example>14814<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickNumAxes(System.IntPtr)"/>14815</member>14816<member name="M:Tao.Sdl.Sdl.SDL_JoystickGetHat(System.IntPtr,System.Int32)">14817<summary>14818Get the current state of a joystick hat14819</summary>14820<remarks>14821SDL_JoystickGetHat returns the current14822state of the given hat on the given joystick.14823<p>Binds to C-function in SDL_joystick.h14824<code>Uint8 SDL_JoystickGetHat(SDL_Joystick *joystick, int hat)14825</code></p>14826</remarks>14827<param name="joystick"></param>14828<param name="hat"></param>14829<returns>14830The current state is returned as a byte which14831is defined as an OR'd combination of one or more of the following:14832<code>14833SDL_HAT_CENTERED14834SDL_HAT_UP14835SDL_HAT_RIGHT14836SDL_HAT_DOWN14837SDL_HAT_LEFT14838SDL_HAT_RIGHTUP14839SDL_HAT_RIGHTDOWN14840SDL_HAT_LEFTUP14841SDL_HAT_LEFTDOWN14842</code>14843</returns>14844<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickNumHats(System.IntPtr)"/>14845</member>14846<member name="M:Tao.Sdl.Sdl.SDL_JoystickGetBall(System.IntPtr,System.Int32,System.Int32@,System.Int32@)">14847<summary>14848Get relative trackball motion.14849</summary>14850<remarks>14851Get the ball axis change.14852<p>Trackballs can only return relative motion since14853the last call to SDL_JoystickGetBall, these motion14854deltas a placed into dx and dy.14855</p>14856<p>Binds to C-function in SDL_joystick.h14857<code>int SDL_JoystickGetBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);14858</code></p>14859</remarks>14860<param name="joystick"></param>14861<param name="ball"></param>14862<param name="dx"></param>14863<param name="dy"></param>14864<returns>14865Returns 0 on success or -1 on failure14866</returns>14867<example>14868<code>14869int delta_x, delta_y;14870SDL_Joystick *joy;14871.14872.14873.14874SDL_JoystickUpdate();14875if(SDL_JoystickGetBall(joy, 0, &delta_x, &delta_y)==-1)14876printf("TrackBall Read Error!\n");14877printf("Trackball Delta- X:%d, Y:%d\n", delta_x, delta_y);14878</code>14879</example>14880<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickNumBalls(System.IntPtr)"/>14881</member>14882<member name="M:Tao.Sdl.Sdl.SDL_JoystickGetButton(System.IntPtr,System.Int32)">14883<summary>14884Get the current state of a given button on a given joystick.14885</summary>14886<remarks>14887SDL_JoystickGetButton returns the current14888state of the given button on the given joystick.14889<p>Binds to C-function in SDL_joystick.h14890<code>Uint8 SDL_JoystickGetButton(SDL_Joystick *joystick, int button);14891</code></p>14892</remarks>14893<param name="joystick"></param>14894<param name="button"></param>14895<returns>148961 if the button is pressed. Otherwise, 0.14897</returns>14898<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickNumButtons(System.IntPtr)"/>14899</member>14900<member name="M:Tao.Sdl.Sdl.SDL_JoystickClose(System.IntPtr)">14901<summary>14902Closes a previously opened joystick.14903</summary>14904<remarks>14905Close a joystick that was previously opened with14906<see cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>.14907<p>Binds to C-function in SDL_joystick.h14908<code>void SDL_JoystickClose(SDL_Joystick *joystick);14909</code></p>14910</remarks>14911<param name="joystick"></param>14912<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpen(System.Int32)"/>14913<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickOpened(System.Int32)"/>14914</member>14915<member name="M:Tao.Sdl.Sdl.SDL_EnableUNICODE(System.Int32)">14916<summary>14917Enable UNICODE translation14918</summary>14919<remarks>14920Enables/Disables Unicode keyboard translation.14921<p>To obtain the character codes corresponding to received14922keyboard events, Unicode translation must first be turned14923on using this function. The translation incurs a slight overhead14924for each keyboard event and is therefore disabled by default.14925For each subsequently received key down event, the unicode member14926of the SDL_keysym structure will then contain the corresponding14927character code, or zero for keysyms that do not correspond to14928any character code.</p>14929<p>A value of 1 for enable enables Unicode translation; 0 disables14930it, and -1 leaves it unchanged (useful for querying the current14931translation mode).</p>14932<p>Note that only key press events will be translated, not14933release events.</p>14934<p>Binds to C-function in SDL_keyboard.h14935<code>int SDL_EnableUNICODE(int enable);14936</code></p>14937</remarks>14938<param name="enable"></param>14939<returns>14940Returns the previous translation mode (0 or 1).14941</returns>14942<seealso cref="T:Tao.Sdl.Sdl.SDL_keysym"/>14943</member>14944<member name="M:Tao.Sdl.Sdl.SDL_EnableKeyRepeat(System.Int32,System.Int32)">14945<summary>14946Set keyboard repeat rate.14947</summary>14948<remarks>14949Enables or disables the keyboard repeat rate.14950delay specifies how long the key must be pressed before it14951begins repeating, it then repeats at the speed specified by14952interval. Both delay and interval are expressed in milliseconds.14953<p>Setting delay to 0 disables key repeating completely. Good14954default values are SDL_DEFAULT_REPEAT_DELAY and14955SDL_DEFAULT_REPEAT_INTERVAL.</p>14956<p>Binds to C-function in SDL_keyboard.h14957<code>int SDL_EnableKeyRepeat(int delay, int interval);14958</code></p>14959</remarks>14960<param name="rate"></param>14961<param name="delay"></param>14962<returns>Returns 0 on success and -1 on failure.</returns>14963</member>14964<member name="M:Tao.Sdl.Sdl.SDL_GetKeyRepeat(System.Int32@,System.Int32@)">14965<summary>14966Get keyboard repeat rate.14967</summary>14968<remarks>14969Gets the keyboard repeat rate.14970delay specifies how long the key must be pressed before it14971begins repeating, it then repeats at the speed specified by14972interval. Both delay and interval are expressed in milliseconds.14973<p>Setting delay to 0 disables key repeating completely. Good14974default values are SDL_DEFAULT_REPEAT_DELAY and14975SDL_DEFAULT_REPEAT_INTERVAL.</p>14976<p>Binds to C-function in SDL_keyboard.h14977<code>int SDL_GetKeyRepeat(int delay, int interval);14978</code></p>14979</remarks>14980<param name="rate"></param>14981<param name="delay"></param>14982<returns>Returns 0 on success and -1 on failure.</returns>14983</member>14984<member name="M:Tao.Sdl.Sdl.SDL_GetKeyStateInternal(System.Int32@)">14985<summary>14986Get a snapshot of the current keyboard state.14987</summary>14988<remarks>14989Returns an array of keystates, indexed by the SDLK_* syms.14990Used:14991Uint8 *keystate = SDL_GetKeyState(NULL);14992if ( keystate[SDLK_RETURN] ) ... _RETURN_ is pressed.14993<p>Binds to C-function in SDL_keyboard.h14994<code>Uint8 *SDL_GetKeyState(int *numkeys);14995</code></p>14996</remarks>14997<param name="numkeys"></param>14998</member>14999<member name="M:Tao.Sdl.Sdl.SDL_GetKeyState(System.Int32@)">15000<summary>15001Get a snapshot of the current keyboard state.15002</summary>15003<remarks>15004Gets a snapshot of the current keyboard state. The current state15005is return as a pointer to an array, the size of this array is15006stored in numkeys. The array is indexed by the SDLK_* symbols.15007A value of 1 means the key is pressed and a value of 0 means its15008not. The pointer returned is a pointer to an internal SDL array15009and should not be freed by the caller.15010<p>Note: Use <see cref="M:Tao.Sdl.Sdl.SDL_PumpEvents"/> to update the state15011array.</p>15012<p>Binds to C-function in SDL_keyboard.h15013<code>Uint8 *SDL_GetKeyState(int *numkeys);15014</code></p>15015</remarks>15016<example>15017<code>15018Uint8 *keystate = SDL_GetKeyState(NULL);15019if ( keystate[SDLK_RETURN] ) printf("Return Key Pressed.\n");15020</code>15021</example>15022<param name="numkeys"></param>15023<seealso cref="M:Tao.Sdl.Sdl.SDL_PumpEvents"/>15024</member>15025<member name="M:Tao.Sdl.Sdl.SDL_GetModState">15026<summary>15027Get the state of modifier keys.15028</summary>15029<remarks>15030Returns the current state of the modifier keys (CTRL, ALT, etc.).15031<p>Binds to C-function in SDL_keyboard.h15032<code>SDLMod SDL_GetModState(void)15033</code></p>15034</remarks>15035<returns>The return value can be an OR'd combination of the15036SDLMod enum.15037</returns>15038<seealso cref="M:Tao.Sdl.Sdl.SDL_GetKeyState(System.Int32@)"/>15039</member>15040<member name="M:Tao.Sdl.Sdl.SDL_SetModState(System.Int32)">15041<summary>15042Set the current key modifier state.15043</summary>15044<remarks>15045The inverse of SDL_GetModState, SDL_SetModState allows you to15046impose modifier key states on your application.15047<p>Simply pass your desired modifier states into modstate.15048This value my be a logical OR'd combination of15049SDLMod.</p>15050<p>Binds to C-function in SDL_keyboard.h15051<code>void SDL_SetModState(SDLMod modstate)15052</code></p>15053</remarks>15054<param name="modstate"></param>15055<seealso cref="M:Tao.Sdl.Sdl.SDL_GetModState"/>15056</member>15057<member name="M:Tao.Sdl.Sdl.SDL_GetKeyName(System.Int32)">15058<summary>15059Get the name of an SDL virtual keysym15060</summary>15061<remarks>15062Returns the SDL-defined name of the SDLKey key.15063<p>Binds to C-function in SDL_keyboard.h15064<code>char *SDL_GetKeyName(SDLKey key);15065</code></p>15066</remarks>15067<returns>15068Returns the SDL-defined name of the SDLKey key.15069</returns>15070</member>15071<member name="M:Tao.Sdl.Sdl.SDL_LoadObject(System.String)">15072<summary>15073This function dynamically loads a shared object and returns a pointer15074to the object handle (or NULL if there was an error).15075</summary>15076<remarks>15077<p>Binds to C-function in SDL_loadso.h15078<code>extern DECLSPEC void * SDLCALL SDL_LoadObject(const char *sofile)15079</code></p>15080</remarks>15081<param name="sofile">System dependent name of the object file.</param>15082<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadFunction(System.IntPtr,System.String)"/>15083<seealso cref="M:Tao.Sdl.Sdl.SDL_UnloadObject(System.IntPtr)"/>15084</member>15085<member name="M:Tao.Sdl.Sdl.SDL_LoadFunction(System.IntPtr,System.String)">15086<summary>15087Given an object handle, this function looks up the address of the15088named function in the shared object and returns it. This address15089is no longer valid after calling SDL_UnloadObject().15090</summary>15091<remarks>15092<p>Binds to C-function in SDL_loadso.h15093<code>extern DECLSPEC void * SDLCALL SDL_LoadFunction(void *handle, const char *name)15094</code></p>15095</remarks>15096<param name="handle">Object handle</param>15097<param name="name">Name of function in the shared object.</param>15098<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadObject(System.String)"/>15099<seealso cref="M:Tao.Sdl.Sdl.SDL_UnloadObject(System.IntPtr)"/>15100</member>15101<member name="M:Tao.Sdl.Sdl.SDL_UnloadObject(System.IntPtr)">15102<summary>15103Unload a shared object from memory15104</summary>15105<remarks>15106<p>Binds to C-function in SDL_loadso.h15107<code>extern DECLSPEC void * SDLCALL SDL_UnloadObject(void *handle)15108</code></p>15109</remarks>15110<param name="handle">Object handle</param>15111<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadFunction(System.IntPtr,System.String)"/>15112<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadObject(System.String)"/>15113</member>15114<member name="M:Tao.Sdl.Sdl.SDL_GetMouseState(System.Int32@,System.Int32@)">15115<summary>15116Retrieve the current state of the mouse.15117</summary>15118<remarks>15119The current button state is returned as a button bitmask, w15120hich can be tested using the SDL_BUTTON(X) macros,15121and x and y are set to the current mouse cursor position.15122You can pass NULL for either x or y.15123<p>Binds to C-function call in SDL_mouse.h:15124<code>15125Uint8 SDL_GetMouseState(int *x, int *y)15126</code>15127</p>15128</remarks>15129<param name="x"></param>15130<param name="y"></param>15131<returns></returns>15132<example>15133<code>15134SDL_PumpEvents();15135if(SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1))15136printf("Mouse Button 1(left) is pressed.\n");15137</code>15138</example>15139<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRelativeMouseState(System.Int32@,System.Int32@)"/>15140<seealso cref="M:Tao.Sdl.Sdl.SDL_PumpEvents"/>15141</member>15142<member name="M:Tao.Sdl.Sdl.SDL_GetRelativeMouseState(System.Int32@,System.Int32@)">15143<summary>15144Retrieve the current state of the mouse.15145</summary>15146<remarks>15147The current button state is returned as a button bitmask,15148which can be tested using the SDL_BUTTON(X) macros,15149and x and y are set to the change in the mouse position15150since the last call to SDL_GetRelativeMouseState or15151since event initialization. You can pass NULL for either x or y.15152<p>Binds to C-function call in SDL_mouse.h:15153<code>15154Uint8 SDL_GetRelativeMouseState(int *x, int *y);15155</code>15156</p>15157</remarks>15158<param name="x"></param>15159<param name="y"></param>15160<returns>15161The current button state is returned as a button bitmask15162</returns>15163<seealso cref="M:Tao.Sdl.Sdl.SDL_GetMouseState(System.Int32@,System.Int32@)"/>15164</member>15165<member name="M:Tao.Sdl.Sdl.SDL_WarpMouse(System.Int16,System.Int16)">15166<summary>15167Set the position of the mouse cursor.15168</summary>15169<remarks>15170Set the position of the mouse cursor (generates a mouse15171motion event).15172<p>Binds to C-function call in SDL_mouse.h:15173<code>15174void SDL_WarpMouse(Uint16 x, Uint16 y);15175</code>15176</p>15177</remarks>15178<param name="x"></param>15179<param name="y"></param>15180<seealso cref="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent"/>15181</member>15182<member name="M:Tao.Sdl.Sdl.SDL_WarpMouse(System.UInt16,System.UInt16)">15183<summary>15184Set the position of the mouse cursor.15185</summary>15186<remarks>15187Set the position of the mouse cursor (generates a mouse15188motion event).15189<p>Binds to C-function call in SDL_mouse.h:15190<code>15191void SDL_WarpMouse(Uint16 x, Uint16 y);15192</code>15193</p>15194</remarks>15195<param name="x"></param>15196<param name="y"></param>15197<seealso cref="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent"/>15198</member>15199<member name="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)">15200<summary>15201Creates a new mouse cursor.15202</summary>15203<remarks>15204Create a cursor using the specified data and mask (in MSB format).15205The cursor width must be a multiple of 8 bits.15206<p>The cursor is created in black and white according to the following:</p>15207<code>15208data mask resulting pixel on screen152090 1 White152101 1 Black152110 0 Transparent152121 0 Inverted color if possible, black if not.15213</code>15214Cursors created with this function must be freed with15215<see cref="M:Tao.Sdl.Sdl.SDL_FreeCursor(Tao.Sdl.Sdl.SDL_Cursor@)"/>.15216<p>Binds to C-function call in SDL_mouse.h:15217<code>15218SDL_Cursor *SDL_CreateCursor(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);15219</code>15220</p>15221</remarks>15222<example>15223<code>15224/* Stolen from the mailing list */15225* Creates a new mouse cursor from an XPM */152261522715228/* XPM */15229static const char *arrow[] = {15230/* width height num_colors chars_per_pixel */15231" 32 32 3 1",15232/* colors */15233"X c #000000",15234". c #ffffff",15235" c None",15236/* pixels */15237"X ",15238"XX ",15239"X.X ",15240"X..X ",15241"X...X ",15242"X....X ",15243"X.....X ",15244"X......X ",15245"X.......X ",15246"X........X ",15247"X.....XXXXX ",15248"X..X..X ",15249"X.X X..X ",15250"XX X..X ",15251"X X..X ",15252" X..X ",15253" X..X ",15254" X..X ",15255" XX ",15256" ",15257" ",15258" ",15259" ",15260" ",15261" ",15262" ",15263" ",15264" ",15265" ",15266" ",15267" ",15268" ",15269"0,0"15270};1527115272static SDL_Cursor *init_system_cursor(const char *image[])15273{15274int i, row, col;15275Uint8 data[4*32];15276Uint8 mask[4*32];15277int hot_x, hot_y;1527815279i = -1;15280for ( row=0; row<32; ++row ) {15281for ( col=0; col<32; ++col ) {15282if ( col % 8 ) {15283data[i] <<= 1;15284mask[i] <<= 1;15285} else {15286++i;15287data[i] = mask[i] = 0;15288}15289switch (image[4+row][col]) {15290case 'X':15291data[i] |= 0x01;15292mask[i] |= 0x01;15293break;15294case '.':15295mask[i] |= 0x01;15296break;15297case ' ':15298break;15299}15300}15301}15302sscanf(image[4+row], "%d,%d", &hot_x, &hot_y);15303return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y);15304}15305</code>15306</example>15307<param name="data"></param>15308<param name="h"></param>15309<param name="hot_x"></param>15310<param name="hot_y"></param>15311<param name="mask"></param>15312<param name="w"></param>15313<returns></returns>15314<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeCursor(Tao.Sdl.Sdl.SDL_Cursor@)"/>15315<seealso cref="M:Tao.Sdl.Sdl.SDL_SetCursor(Tao.Sdl.Sdl.SDL_Cursor@)"/>15316<seealso cref="M:Tao.Sdl.Sdl.SDL_ShowCursor(System.Int32)"/>15317</member>15318<member name="M:Tao.Sdl.Sdl.SDL_SetCursor(Tao.Sdl.Sdl.SDL_Cursor@)">15319<summary>15320Set the currently active cursor to the specified one.15321</summary>15322<remarks>15323Sets the currently active cursor to the specified one.15324If the cursor is currently visible, the change will15325be immediately represented on the display.15326<p>Binds to C-function call in SDL_mouse.h:15327<code>15328void *SDL_SetCursor(SDL_Cursor *cursor);15329</code>15330</p>15331</remarks>15332<param name="cursor"></param>15333<returns></returns>15334<seealso cref="M:Tao.Sdl.Sdl.SDL_GetCursor"/>15335<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)"/>15336<seealso cref="M:Tao.Sdl.Sdl.SDL_ShowCursor(System.Int32)"/>15337</member>15338<member name="M:Tao.Sdl.Sdl.SDL_GetCursor">15339<summary>15340Returns the currently active cursor.15341</summary>15342<remarks>15343<p>Binds to C-function call in SDL_mouse.h:15344<code>15345SDL_Cursor *SDL_GetCursor(void);15346</code>15347</p>15348</remarks>15349<returns>IntPtr to <see cref="T:Tao.Sdl.Sdl.SDL_Cursor"/></returns>15350<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)"/>15351<seealso cref="M:Tao.Sdl.Sdl.SDL_SetCursor(Tao.Sdl.Sdl.SDL_Cursor@)"/>15352<seealso cref="M:Tao.Sdl.Sdl.SDL_ShowCursor(System.Int32)"/>15353</member>15354<member name="M:Tao.Sdl.Sdl.SDL_FreeCursor(Tao.Sdl.Sdl.SDL_Cursor@)">15355<summary>15356Frees a cursor created with SDL_CreateCursor.15357</summary>15358<remarks>15359<p>Binds to C-function call in SDL_mouse.h:15360<code>15361void SDL_FreeCursor(SDL_Cursor *cursor)15362</code>15363</p>15364Frees a SDL_Cursor that was created using15365<see cref="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)"/>.15366</remarks>15367<param name="cursor"></param>15368<returns></returns>15369<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)"/>15370</member>15371<member name="M:Tao.Sdl.Sdl.SDL_ShowCursor(System.Int32)">15372<summary>15373Toggle whether or not the cursor is shown on the screen.15374</summary>15375<remarks>15376Toggle whether or not the cursor is shown on the screen.15377Passing SDL_ENABLE displays the cursor and passing15378SDL_DISABLE hides it. The current state of the mouse15379cursor can be queried by passing SDL_QUERY, either15380SDL_DISABLE or SDL_ENABLE will be returned.15381<p>15382The cursor starts off displayed, but can be turned off.15383</p>15384<p>Binds to C-function call in SDL_mouse.h:15385<code>15386int SDL_ShowCursor(int toggle);15387</code>15388</p>15389</remarks>15390<param name="toggle"></param>15391<returns></returns>15392<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateCursor(System.Byte@,System.Byte@,System.Int32,System.Int32,System.Int32,System.Int32)"/>15393<seealso cref="M:Tao.Sdl.Sdl.SDL_SetCursor(Tao.Sdl.Sdl.SDL_Cursor@)"/>15394</member>15395<member name="M:Tao.Sdl.Sdl.SDL_BUTTON(System.Byte)">15396<summary>1539715398</summary>15399<param name="x"></param>15400<returns></returns>15401</member>15402<member name="M:Tao.Sdl.Sdl.SDL_CreateMutex">15403<summary>15404Create a mutex, initialized unlocked15405</summary>15406<returns>15407IntPtr to mutex15408</returns>15409<remarks>15410<p>15411Binds to C-function call in SDL_mutex.h:15412<code>extern DECLSPEC SDL_mutex * SDLCALL SDL_CreateMutex(void)</code>15413</p>15414</remarks>15415</member>15416<member name="M:Tao.Sdl.Sdl.SDL_mutexP(System.IntPtr)">15417<summary>15418Lock the mutex (Returns 0, or -1 on error)15419</summary>15420<returns>15421Lock the mutex (Returns 0, or -1 on error)15422</returns>15423<remarks>15424<p>15425Binds to C-function call in SDL_mutex.h:15426<code>extern DECLSPEC int SDLCALL SDL_mutexP(SDL_mutex *mutex)</code>15427</p>15428</remarks>15429</member>15430<member name="M:Tao.Sdl.Sdl.SDL_LockMutex(System.IntPtr)">15431<summary>15432Lock the mutex (Returns 0, or -1 on error)15433</summary>15434<returns>15435Lock the mutex (Returns 0, or -1 on error)15436</returns>15437<remarks>15438<p>15439Binds to C-function call in SDL_mutex.h:15440<code>#define SDL_LockMutex(m) SDL_mutexP(m)</code>15441</p>15442</remarks>15443</member>15444<member name="M:Tao.Sdl.Sdl.SDL_mutexV(System.IntPtr)">15445<summary>15446Unlock the mutex (Returns 0, or -1 on error)15447</summary>15448<returns>15449Unlock the mutex (Returns 0, or -1 on error)15450</returns>15451<remarks>15452<p>15453Binds to C-function call in SDL_mutex.h:15454<code>extern DECLSPEC int SDLCALL SDL_mutexV(SDL_mutex *mutex)</code>15455</p>15456</remarks>15457</member>15458<member name="M:Tao.Sdl.Sdl.SDL_UnlockMutex(System.IntPtr)">15459<summary>15460Unlock the mutex (Returns 0, or -1 on error)15461</summary>15462<returns>15463unlock the mutex (Returns 0, or -1 on error)15464</returns>15465<remarks>15466<p>15467Binds to C-function call in SDL_mutex.h:15468<code>#define SDL_UnlockMutex(m) SDL_mutexP(m)</code>15469</p>15470</remarks>15471</member>15472<member name="M:Tao.Sdl.Sdl.SDL_DestroyMutex(System.IntPtr)">15473<summary>15474Destroy a mutex15475</summary>15476<remarks>15477<p>15478Binds to C-function call in SDL_mutex.h:15479<code>extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex *mutex)</code>15480</p>15481</remarks>15482</member>15483<member name="M:Tao.Sdl.Sdl.SDL_CreateSemaphore(System.Int32)">15484<summary>15485Create a semaphore, initialized with value, returns NULL on failure.15486</summary>15487<returns>15488Create a semaphore, initialized with value, returns NULL on failure.15489</returns>15490<remarks>15491<p>15492Binds to C-function call in SDL_mutex.h:15493<code>extern DECLSPEC SDL_sem * SDLCALL SDL_CreateSemaphore(Uint32 initial_value)</code>15494</p>15495</remarks>15496</member>15497<member name="M:Tao.Sdl.Sdl.SDL_CreateSemaphore(System.UInt32)">15498<summary>15499Create a semaphore, initialized with value, returns NULL on failure.15500</summary>15501<returns>15502Create a semaphore, initialized with value, returns NULL on failure.15503</returns>15504<remarks>15505<p>15506Binds to C-function call in SDL_mutex.h:15507<code>extern DECLSPEC SDL_sem * SDLCALL SDL_CreateSemaphore(Uint32 initial_value)</code>15508</p>15509</remarks>15510</member>15511<member name="M:Tao.Sdl.Sdl.SDL_DestroySemaphore(System.IntPtr)">15512<summary>15513Destroy a semaphore15514</summary>15515<remarks>15516<p>15517Binds to C-function call in SDL_mutex.h:15518<code>extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem *sem)</code>15519</p>15520</remarks>15521</member>15522<member name="M:Tao.Sdl.Sdl.SDL_SemWait(System.IntPtr)">15523<summary>15524This function suspends the calling thread until the semaphore pointed15525to by sem has a positive count.15526It then atomically decreases the semaphore count.15527</summary>15528<remarks>15529<p>15530Binds to C-function call in SDL_mutex.h:15531<code>extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem *sem)</code>15532</p>15533</remarks>15534</member>15535<member name="M:Tao.Sdl.Sdl.SDL_SemtryWait(System.IntPtr)">15536<summary>15537Non-blocking variant of SDL_SemWait(),15538returns 0 if the wait succeeds,15539SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error.15540</summary>15541<returns>15542Non-blocking variant of SDL_SemWait(),15543returns 0 if the wait succeeds,15544SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error.15545</returns>15546<remarks>15547<p>15548Binds to C-function call in SDL_mutex.h:15549<code>extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem *sem)</code>15550</p>15551</remarks>15552</member>15553<member name="M:Tao.Sdl.Sdl.SDL_SemWaitTimeout(System.IntPtr,System.Int32)">15554<summary>15555Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if15556the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in15557the allotted time, and -1 on error.15558On some platforms this function is implemented by looping with a delay15559of 1 ms, and so should be avoided if possible.15560</summary>15561<returns>15562Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if15563the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in15564the allotted time, and -1 on error.15565On some platforms this function is implemented by looping with a delay15566of 1 ms, and so should be avoided if possible.15567</returns>15568<remarks>15569<p>15570Binds to C-function call in SDL_mutex.h:15571<code>extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms)</code>15572</p>15573</remarks>15574</member>15575<member name="M:Tao.Sdl.Sdl.SDL_SemWaitTimeout(System.IntPtr,System.UInt32)">15576<summary>15577Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if15578the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in15579the allotted time, and -1 on error.15580On some platforms this function is implemented by looping with a delay15581of 1 ms, and so should be avoided if possible.15582</summary>15583<returns>15584Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if15585the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in15586the allotted time, and -1 on error.15587On some platforms this function is implemented by looping with a delay15588of 1 ms, and so should be avoided if possible.15589</returns>15590<remarks>15591<p>15592Binds to C-function call in SDL_mutex.h:15593<code>extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms)</code>15594</p>15595</remarks>15596</member>15597<member name="M:Tao.Sdl.Sdl.SDL_SemPost(System.IntPtr)">15598<summary>15599Atomically increases the semaphore's count (not blocking),15600returns 0, or -1 on error.15601</summary>15602<returns>15603Atomically increases the semaphore's count (not blocking),15604returns 0, or -1 on error.15605</returns>15606<remarks>15607<p>15608Binds to C-function call in SDL_mutex.h:15609<code>extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem *sem)</code>15610</p>15611</remarks>15612</member>15613<member name="M:Tao.Sdl.Sdl.SDL_SemValue(System.IntPtr)">15614<summary>15615Returns the current count of the semaphore15616</summary>15617<returns>15618Returns the current count of the semaphore15619</returns>15620<remarks>15621<p>15622Binds to C-function call in SDL_mutex.h:15623<code>extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem *sem)</code>15624</p>15625</remarks>15626</member>15627<member name="M:Tao.Sdl.Sdl.SDL_CreateCond">15628<summary>15629Create a condition variable15630</summary>15631<returns>15632intPtr to variable15633</returns>15634<remarks>15635<p>15636Binds to C-function call in SDL_mutex.h:15637<code>extern DECLSPEC SDL_cond * SDLCALL SDL_CreateCond(void)</code>15638</p>15639</remarks>15640</member>15641<member name="M:Tao.Sdl.Sdl.SDL_DestroyCond(System.IntPtr)">15642<summary>15643Destroy a condition variable15644</summary>15645<remarks>15646<p>15647Binds to C-function call in SDL_mutex.h:15648<code>extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond *cond)</code>15649</p>15650</remarks>15651</member>15652<member name="M:Tao.Sdl.Sdl.SDL_CondSignal(System.IntPtr)">15653<summary>15654Restart one of the threads that are waiting on the condition variable,15655returns 0 or -1 on error.15656</summary>15657<returns>15658Restart one of the threads that are waiting on the condition variable,15659returns 0 or -1 on error.15660</returns>15661<remarks>15662<p>15663Binds to C-function call in SDL_mutex.h:15664<code>extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond *cond)</code>15665</p>15666</remarks>15667</member>15668<member name="M:Tao.Sdl.Sdl.SDL_CondBroadcast(System.IntPtr)">15669<summary>15670Restart all threads that are waiting on the condition variable,15671returns 0 or -1 on error.15672</summary>15673<returns>15674Restart all threads that are waiting on the condition variable,15675returns 0 or -1 on error.15676</returns>15677<remarks>15678<p>15679Binds to C-function call in SDL_mutex.h:15680<code>extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond *cond)</code>15681</p>15682</remarks>15683</member>15684<member name="M:Tao.Sdl.Sdl.SDL_CondWait(System.IntPtr,System.IntPtr)">15685<summary>15686Wait on the condition variable, unlocking the provided mutex.15687The mutex must be locked before entering this function!15688Returns 0 when it is signaled, or -1 on error.15689</summary>15690<returns>15691Wait on the condition variable, unlocking the provided mutex.15692The mutex must be locked before entering this function!15693Returns 0 when it is signaled, or -1 on error.15694</returns>15695<remarks>15696<p>15697Binds to C-function call in SDL_mutex.h:15698<code>extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mut)</code>15699</p>15700</remarks>15701</member>15702<member name="M:Tao.Sdl.Sdl.SDL_CondWaitTimeout(System.IntPtr,System.IntPtr,System.Int32)">15703<summary>15704Waits for at most 'ms' milliseconds, and returns 0 if the condition15705variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not15706signaled in the allotted time, and -1 on error.15707On some platforms this function is implemented by looping with a delay15708of 1 ms, and so should be avoided if possible.15709</summary>15710<returns>15711returns 0 if the condition15712variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not15713signaled in the allotted time, and -1 on error15714</returns>15715<remarks>15716<p>15717Binds to C-function call in SDL_mutex.h:15718<code>extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms)</code>15719</p>15720</remarks>15721</member>15722<member name="M:Tao.Sdl.Sdl.SDL_CondWaitTimeout(System.IntPtr,System.IntPtr,System.UInt32)">15723<summary>15724Waits for at most 'ms' milliseconds, and returns 0 if the condition15725variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not15726signaled in the allotted time, and -1 on error.15727On some platforms this function is implemented by looping with a delay15728of 1 ms, and so should be avoided if possible.15729</summary>15730<returns>15731returns 0 if the condition15732variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not15733signaled in the allotted time, and -1 on error15734</returns>15735<remarks>15736<p>15737Binds to C-function call in SDL_mutex.h:15738<code>extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms)</code>15739</p>15740</remarks>15741</member>15742<member name="M:Tao.Sdl.Sdl.SDL_NAME(System.String)">15743<summary>15744Returns SDL name15745</summary>15746<param name="x">input name</param>15747<returns>Returns SDL name</returns>15748</member>15749<member name="M:Tao.Sdl.Sdl.SDL_QuitRequested">15750<summary>15751Checks if SDL_Quit event has been requested15752</summary>15753<returns>15754Returns 1 if a SDL_Quit Event has been requested.15755Returns 0 if no SDL_Quit event has been requeted.15756</returns>15757</member>15758<member name="M:Tao.Sdl.Sdl.SDL_RWFromFile(System.String,System.String)">15759<summary>15760Create SDL_RWops structures from file.15761</summary>15762<remarks>15763<p>Binds to C-function call in SDL_rwops.h:15764<code>15765SDL_RWops * SDLCALL SDL_RWFromFile(const char *file, const char *mode)15766</code></p></remarks>15767<param name="file"></param>15768<param name="mode">"rb"</param>15769<returns>IntPtr to SDL_RWops</returns>15770</member>15771<member name="M:Tao.Sdl.Sdl.SDL_RWFromMem(System.IntPtr,System.Int32)">15772<summary>15773Create SDL_RWops structures from memory.15774</summary>15775<remarks>15776<p>Binds to C-function call in SDL_rwops.h:15777<code>15778SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size)15779</code></p></remarks>15780<param name="mem"></param>15781<param name="size"></param>15782<returns>IntPtr to SDL_RWops</returns>15783</member>15784<member name="M:Tao.Sdl.Sdl.SDL_RWFromMem(System.Byte[],System.Int32)">15785<summary>15786Create SDL_RWops structures from memory.15787</summary>15788<remarks>15789<p>Binds to C-function call in SDL_rwops.h:15790<code>15791SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size)15792</code></p></remarks>15793<param name="mem"></param>15794<param name="size"></param>15795<returns>IntPtr to SDL_RWops</returns>15796</member>15797<member name="M:Tao.Sdl.Sdl.SDL_RWFromFP(System.IntPtr,System.Int32)">15798<summary>15799SDL_RWFromFP creates a new SDL_RWops structure from a file pointer, opened with stdio. If autoclose is nonzero, the file will be automatically closed when the RWops structure is closed.15800</summary>15801<remarks>This is not available under Win32, since files opened in an application on that platform cannot be used by a dynamically linked library.</remarks>15802<param name="fp"></param>15803<param name="autoclose"></param>15804<returns>Returns pointer to a new RWops structure, or NULL if it fails.</returns>15805<example>15806<code>15807FILE *fp;15808SDL_RWops *rw;1580915810fp = fopen("myfile.dat", "rb");15811rw = SDL_RWFromFP(fp, 1);1581215813// Do things with rw...15814SDL_RWclose(rw); // Automatically does an fclose(fp)15815</code></example>15816<seealso cref="M:Tao.Sdl.Sdl.SDL_RWFromFile(System.String,System.String)"/>15817</member>15818<member name="M:Tao.Sdl.Sdl.SDL_RWFromConstMem(System.IntPtr,System.Int32)">15819<summary>15820Prepares a constant memory area for use with RWops.15821</summary>15822<remarks><see cref="M:Tao.Sdl.Sdl.SDL_RWFromConstMem(System.IntPtr,System.Int32)"/> sets up a RWops struct based on a memory area of a certain size. It assumes the memory area is not writable.</remarks>15823<param name="mem"></param>15824<param name="size"></param>15825<returns>Returns a pointer to a new RWops struct, or NULL if it fails.</returns>15826<example>15827<code>15828char bitmap[] = {1582966, 77, 86, 2, 0, 0, 0, 0 ...15830}15831SDL_RWops *rw;15832SDL_Surface *img;1583315834rw = SDL_RWFromConstMem(bitmap, sizeof(bitmap));15835img = SDL_LoadBMP_RW(rw, 1); // Automatically frees the RWops struct for us1583615837//Do something with img...15838</code></example>15839<seealso cref="M:Tao.Sdl.Sdl.SDL_RWFromMem(System.IntPtr,System.Int32)"/>15840</member>15841<member name="M:Tao.Sdl.Sdl.SDL_AllocRW">15842<summary>15843Allocates an empty, unpopulated SDL_RWops structure.15844</summary>15845<remarks>SDL_AllocRW allocates an empty, unpopulated SDL_RWops structure. You must fill out the fields yourself.</remarks>15846<returns>Returns a pointer to the allocated memory on success, or NULL on error.15847<p>You must free any memory allocated with <see cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/> with <see cref="M:Tao.Sdl.Sdl.SDL_FreeRW(System.IntPtr)"/>. Depending on your operating system and compiler, there may be a difference between the malloc() and free() your program uses and the versions SDL calls internally. Trying to mix the two can cause crashing such as segmentation faults.</p></returns>15848</member>15849<member name="M:Tao.Sdl.Sdl.SDL_FreeRW(System.IntPtr)">15850<summary>15851Frees an SDL_RWops structure allocated by <see cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>.15852</summary>15853<remarks><see cref="M:Tao.Sdl.Sdl.SDL_FreeRW(System.IntPtr)"/> frees an SDL_RWops structure previously allocated by <see cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>. Only use it on memory allocated by <see cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>. Any extra memory allocated during creation of the RWops is not freed by <see cref="M:Tao.Sdl.Sdl.SDL_FreeRW(System.IntPtr)"/>; the programmer must be responsible for it.</remarks>15854<param name="context"></param>15855<example>15856<code>15857#include "SDL_rwops.h"15858void dumb_example()15859{15860SDL_RWops *rw=SDL_AllocRW();15861if(rw==NULL) return;15862SDL_FreeRW(rw);15863}15864</code></example>15865<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15866</member>15867<member name="M:Tao.Sdl.Sdl.SDL_ReadLE16(System.IntPtr)">15868<summary>15869Read an item of the specified endianness and return in native format.15870</summary>15871<remarks>15872<p>Binds to C-function in SDL_rwops.h15873<code>15874extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops *src)15875</code></p>15876</remarks>15877<param name="src"></param>15878<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15879</member>15880<member name="M:Tao.Sdl.Sdl.SDL_ReadBE16(System.IntPtr)">15881<summary>15882Read an item of the specified endianness and return in native format.15883</summary>15884<remarks>15885<p>Binds to C-function in SDL_rwops.h15886<code>15887extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops *src)15888</code></p>15889</remarks>15890<param name="src"></param>15891<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15892</member>15893<member name="M:Tao.Sdl.Sdl.SDL_ReadLE32(System.IntPtr)">15894<summary>15895Read an item of the specified endianness and return in native format.15896</summary>15897<remarks>15898<p>Binds to C-function in SDL_rwops.h15899<code>15900extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops *src)15901</code></p>15902</remarks>15903<param name="src"></param>15904<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15905</member>15906<member name="M:Tao.Sdl.Sdl.SDL_ReadBE32(System.IntPtr)">15907<summary>15908Read an item of the specified endianness and return in native format.15909</summary>15910<remarks>15911<p>Binds to C-function in SDL_rwops.h15912<code>15913extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops *src)15914</code></p>15915</remarks>15916<param name="src"></param>15917<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15918</member>15919<member name="M:Tao.Sdl.Sdl.SDL_ReadLE64(System.IntPtr)">15920<summary>15921Read an item of the specified endianness and return in native format.15922</summary>15923<remarks>15924<p>Binds to C-function in SDL_rwops.h15925<code>15926extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops *src)15927</code></p>15928</remarks>15929<param name="src"></param>15930<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15931</member>15932<member name="M:Tao.Sdl.Sdl.SDL_ReadBE64(System.IntPtr)">15933<summary>15934Read an item of the specified endianness and return in native format.15935</summary>15936<remarks>15937<p>Binds to C-function in SDL_rwops.h15938<code>15939extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops *src)15940</code></p>15941</remarks>15942<param name="src"></param>15943<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15944</member>15945<member name="M:Tao.Sdl.Sdl.SDL_WriteLE16(System.IntPtr,System.Int16)">15946<summary>15947Write an item of native format to the specified endianness15948</summary>15949<remarks>15950<p>Binds to C-function in SDL_rwops.h15951<code>15952extern DECLSPEC int SDLCALL SDL_WriteLE16(SDL_RWops *dst, Uint16 value)15953</code></p>15954</remarks>15955<param name="dst"></param>15956<param name="val"></param>15957<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15958</member>15959<member name="M:Tao.Sdl.Sdl.SDL_WriteLE16(System.IntPtr,System.UInt16)">15960<summary>15961Write an item of native format to the specified endianness15962</summary>15963<remarks>15964<p>Binds to C-function in SDL_rwops.h15965<code>15966extern DECLSPEC int SDLCALL SDL_WriteLE16(SDL_RWops *dst, Uint16 value)15967</code></p>15968</remarks>15969<param name="dst"></param>15970<param name="val"></param>15971<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15972</member>15973<member name="M:Tao.Sdl.Sdl.SDL_WriteBE16(System.IntPtr,System.Int16)">15974<summary>15975Write an item of native format to the specified endianness15976</summary>15977<remarks>15978<p>Binds to C-function in SDL_rwops.h15979<code>15980extern DECLSPEC int SDLCALL SDL_WriteBE16(SDL_RWops *dst, Uint16 value)15981</code></p>15982</remarks>15983<param name="dst"></param>15984<param name="val"></param>15985<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>15986</member>15987<member name="M:Tao.Sdl.Sdl.SDL_WriteBE16(System.IntPtr,System.UInt16)">15988<summary>15989Write an item of native format to the specified endianness15990</summary>15991<remarks>15992<p>Binds to C-function in SDL_rwops.h15993<code>15994extern DECLSPEC int SDLCALL SDL_WriteBE16(SDL_RWops *dst, Uint16 value)15995</code></p>15996</remarks>15997<param name="dst"></param>15998<param name="val"></param>15999<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16000</member>16001<member name="M:Tao.Sdl.Sdl.SDL_WriteLE32(System.IntPtr,System.Int32)">16002<summary>16003Write an item of native format to the specified endianness16004</summary>16005<remarks>16006<p>Binds to C-function in SDL_rwops.h16007<code>16008extern DECLSPEC int SDLCALL SDL_WriteLE32(SDL_RWops *dst, Uint32 value)16009</code></p>16010</remarks>16011<param name="dst"></param>16012<param name="val"></param>16013<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16014</member>16015<member name="M:Tao.Sdl.Sdl.SDL_WriteLE32(System.IntPtr,System.UInt32)">16016<summary>16017Write an item of native format to the specified endianness16018</summary>16019<remarks>16020<p>Binds to C-function in SDL_rwops.h16021<code>16022extern DECLSPEC int SDLCALL SDL_WriteLE32(SDL_RWops *dst, Uint32 value)16023</code></p>16024</remarks>16025<param name="dst"></param>16026<param name="val"></param>16027<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16028</member>16029<member name="M:Tao.Sdl.Sdl.SDL_WriteBE32(System.IntPtr,System.Int32)">16030<summary>16031Write an item of native format to the specified endianness16032</summary>16033<remarks>16034<p>Binds to C-function in SDL_rwops.h16035<code>16036extern DECLSPEC int SDLCALL SDL_WriteBE32(SDL_RWops *dst, Uint32 value)16037</code></p>16038</remarks>16039<param name="dst"></param>16040<param name="val"></param>16041<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16042</member>16043<member name="M:Tao.Sdl.Sdl.SDL_WriteBE32(System.IntPtr,System.UInt32)">16044<summary>16045Write an item of native format to the specified endianness16046</summary>16047<remarks>16048<p>Binds to C-function in SDL_rwops.h16049<code>16050extern DECLSPEC int SDLCALL SDL_WriteBE32(SDL_RWops *dst, Uint32 value)16051</code></p>16052</remarks>16053<param name="dst"></param>16054<param name="val"></param>16055<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16056</member>16057<member name="M:Tao.Sdl.Sdl.SDL_WriteLE64(System.IntPtr,System.Int64)">16058<summary>16059Write an item of native format to the specified endianness16060</summary>16061<remarks>16062<p>Binds to C-function in SDL_rwops.h16063<code>16064extern DECLSPEC int SDLCALL SDL_WriteLE64(SDL_RWops *dst, Uint64 value)16065</code></p>16066</remarks>16067<param name="dst"></param>16068<param name="val"></param>16069<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16070</member>16071<member name="M:Tao.Sdl.Sdl.SDL_WriteBE64(System.IntPtr,System.Int64)">16072<summary>16073Write an item of native format to the specified endianness16074</summary>16075<remarks>16076<p>Binds to C-function in SDL_rwops.h16077<code>16078extern DECLSPEC int SDLCALL SDL_WriteBE64(SDL_RWops *dst, Uint64 value)16079</code></p>16080</remarks>16081<param name="dst"></param>16082<param name="val"></param>16083<seealso cref="M:Tao.Sdl.Sdl.SDL_AllocRW"/>16084</member>16085<member name="M:Tao.Sdl.Sdl.SDL_putenv(System.String)">16086<summary>16087Puts a variable of the form "name=value" into the environment.16088</summary>16089<param name="variable">16090The "name=value" pair to write to the environment.16091</param>16092<returns>16093Returns -1 on an error or 0 on success.16094</returns>16095<remarks>16096Not all environments have a working putenv(). SDL_putenv() is not available on Windows.16097<p>16098Binds to C-function call in SDL_getenv.h:16099<code>extern DECLSPEC int SDLCALL SDL_putenv(const char *variable)</code>16100</p>16101</remarks>16102<seealso cref="M:Tao.Sdl.Sdl.SDL_getenv(System.String)"/>16103</member>16104<member name="M:Tao.Sdl.Sdl.SDL_getenv(System.String)">16105<summary>16106Retrieves a variable from the environment.16107</summary>16108<param name="name">16109The name of the environmental variable to retrieve.16110</param>16111<returns>16112The value of the specified environmental variable.16113</returns>16114<remarks>16115Not all environments have a working getenv(). SDL_getenv() is not available on Windows.16116<p>Binds to C-function call in SDL_getenv.h:16117<code>extern DECLSPEC char * SDLCALL SDL_getenv(const char *name)</code>16118</p>16119</remarks>16120<seealso cref="M:Tao.Sdl.Sdl.SDL_putenv(System.String)"/>16121</member>16122<member name="M:Tao.Sdl.Sdl.SDL_GetWMInfo(Tao.Sdl.Sdl.SDL_SysWMinfo_Unix@)">16123<summary>16124Gives you custom hooks into the window manager information.16125</summary>16126<remarks>16127This function gives you custom hooks into the window manager information.16128It fills the structure pointed to by 'info' with custom information and16129returns 1 if the function is implemented. If it's not implemented, or16130the version member of the 'info' structure is invalid, it returns 0.1613116132You typically use this function like this:16133SDL_SysWMInfo info;16134SDL_VERSION(&info.version);16135if ( SDL_GetWMInfo(&info) ) { ... }16136<p>Binds to C-function call in SDL_rwops.h:16137<code>extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info)</code>16138</p>16139</remarks>16140<param name="info">16141IntPtr to SDL_SysWMinfo struct16142</param>16143<returns>16144It fills the structure pointed to by 'info'16145with custom information and16146returns 1 if the function is implemented. If it's not implemented, or16147the version member of the 'info' structure is invalid, it returns 0.16148</returns>16149</member>16150<member name="M:Tao.Sdl.Sdl.SDL_GetWMInfo(Tao.Sdl.Sdl.SDL_SysWMinfo_Windows@)">16151<summary>16152Gives you custom hooks into the window manager information.16153</summary>16154<remarks>16155This function gives you custom hooks into the window manager information.16156It fills the structure pointed to by 'info' with custom information and16157returns 1 if the function is implemented. If it's not implemented, or16158the version member of the 'info' structure is invalid, it returns 0.1615916160You typically use this function like this:16161SDL_SysWMInfo info;16162SDL_VERSION(&info.version);16163if ( SDL_GetWMInfo(&info) ) { ... }16164<p>Binds to C-function call in SDL_rwops.h:16165<code>extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info)</code>16166</p>16167</remarks>16168<param name="info">16169IntPtr to SDL_SysWMinfo struct16170</param>16171<returns>16172It fills the structure pointed to by 'info'16173with custom information and16174returns 1 if the function is implemented. If it's not implemented, or16175the version member of the 'info' structure is invalid, it returns 0.16176</returns>16177</member>16178<member name="M:Tao.Sdl.Sdl.SDL_GetWMInfo(Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS@)">16179<summary>16180Gives you custom hooks into the window manager information.16181</summary>16182<remarks>16183This function gives you custom hooks into the window manager information.16184It fills the structure pointed to by 'info' with custom information and16185returns 1 if the function is implemented. If it's not implemented, or16186the version member of the 'info' structure is invalid, it returns 0.1618716188You typically use this function like this:16189SDL_SysWMInfo info;16190SDL_VERSION(&info.version);16191if ( SDL_GetWMInfo(&info) ) { ... }16192<p>Binds to C-function call in SDL_rwops.h:16193<code>extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info)</code>16194</p>16195</remarks>16196<param name="info">16197IntPtr to SDL_SysWMinfo struct16198</param>16199<returns>16200It fills the structure pointed to by 'info'16201with custom information and16202returns 1 if the function is implemented. If it's not implemented, or16203the version member of the 'info' structure is invalid, it returns 0.16204</returns>16205</member>16206<member name="M:Tao.Sdl.Sdl.SDL_GetWMInfo(Tao.Sdl.Sdl.SDL_SysWMinfo@)">16207<summary>16208Gives you custom hooks into the window manager information.16209</summary>16210<remarks>16211This function gives you custom hooks into the window manager information.16212It fills the structure pointed to by 'info' with custom information and16213returns 1 if the function is implemented. If it's not implemented, or16214the version member of the 'info' structure is invalid, it returns 0.1621516216You typically use this function like this:16217SDL_SysWMInfo info;16218SDL_VERSION(&info.version);16219if ( SDL_GetWMInfo(&info) ) { ... }16220<p>Binds to C-function call in SDL_rwops.h:16221<code>extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info)</code>16222</p>16223</remarks>16224<param name="info">16225IntPtr to SDL_SysWMinfo struct16226</param>16227<returns>16228It fills the structure pointed to by 'info'16229with custom information and16230returns 1 if the function is implemented. If it's not implemented, or16231the version member of the 'info' structure is invalid, it returns 0.16232</returns>16233</member>16234<member name="M:Tao.Sdl.Sdl.SDL_CreateThread(Tao.Sdl.Sdl.ThreadDelegate,System.Object)">16235<summary>16236Create thread16237</summary>16238<returns>16239IntPtr to SDL_Thread struct16240</returns>16241<remarks>16242<p>16243Binds to C-function call in SDL_thread.h:16244<code>extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data)</code>16245</p>16246</remarks>16247</member>16248<member name="M:Tao.Sdl.Sdl.SDL_ThreadID">16249<summary>16250Get the 32-bit thread identifier for the current thread16251</summary>16252<returns>16253ID16254</returns>16255<remarks>16256<p>16257Binds to C-function call in SDL_thread.h:16258<code>extern DECLSPEC Uint32 SDLCALL SDL_ThreadID(void)</code>16259</p>16260</remarks>16261</member>16262<member name="M:Tao.Sdl.Sdl.SDL_GetThreadID(System.IntPtr)">16263<summary>16264Get the 32-bit thread identifier for the specified thread,16265equivalent to SDL_ThreadID() if the specified thread is NULL.16266</summary>16267<returns>16268ID16269</returns>16270<remarks>16271<p>16272Binds to C-function call in SDL_thread.h:16273<code>extern DECLSPEC Uint32 SDLCALL SDL_GetThreadID(SDL_Thread *thread)</code>16274</p>16275</remarks>16276</member>16277<member name="M:Tao.Sdl.Sdl.SDL_WaitThread(System.IntPtr,System.Int32@)">16278<summary>16279Wait for a thread to finish.16280The return code for the thread function is placed in the area16281pointed to by 'status', if 'status' is not NULL.16282</summary>16283<remarks>16284<p>16285Binds to C-function call in SDL_thread.h:16286<code>extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread *thread, int *status)</code>16287</p>16288</remarks>16289</member>16290<member name="M:Tao.Sdl.Sdl.SDL_KillThread(System.IntPtr)">16291<summary>16292Forcefully kill a thread without worrying about its state16293</summary>16294<remarks>16295<p>16296Binds to C-function call in SDL_thread.h:16297<code>extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread *thread)</code>16298</p>16299</remarks>16300</member>16301<member name="M:Tao.Sdl.Sdl.SDL_GetTicks">16302<summary>16303Get the number of milliseconds since the SDL library initialization.16304</summary>16305<returns>16306The number of milliseconds since SDL was initialized.16307</returns>16308<remarks>16309Note that this value wraps if the program runs for more than ~49 days.16310<p>16311Binds to C-function call in SDL_timer.h:16312<code>extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void)</code>16313</p>16314</remarks>16315<seealso cref="M:Tao.Sdl.Sdl.SDL_Delay(System.Int32)"/>16316</member>16317<member name="M:Tao.Sdl.Sdl.SDL_Delay(System.Int32)">16318<summary>16319Wait a specified number of milliseconds before returning.16320</summary>16321<param name="ms">16322The number of milliseconds to wait.16323</param>16324<remarks>16325<b>SDL_Delay</b> will wait at least the specified time, but possible longer due16326to OS scheduling. Count on a delay granularity of at least 10 ms. Some16327platforms have shorter clock ticks but this is the most common.16328<p>16329Binds to C-function call in SDL_timer.h:16330<code>extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms)</code>16331</p>16332</remarks>16333<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>16334</member>16335<member name="M:Tao.Sdl.Sdl.SDL_Delay(System.UInt32)">16336<summary>16337Wait a specified number of milliseconds before returning.16338</summary>16339<param name="ms">16340The number of milliseconds to wait.16341</param>16342<remarks>16343<b>SDL_Delay</b> will wait at least the specified time, but possible longer due16344to OS scheduling. Count on a delay granularity of at least 10 ms. Some16345platforms have shorter clock ticks but this is the most common.16346<p>16347Binds to C-function call in SDL_timer.h:16348<code>extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms)</code>16349</p>16350</remarks>16351<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>16352</member>16353<member name="M:Tao.Sdl.Sdl.SDL_SetTimer(System.Int32,Tao.Sdl.Sdl.SDL_TimerCallback)">16354<summary>16355Set a callback to run after the specified number of milliseconds has elapsed.16356</summary>16357<param name="interval">16358The timer interval.16359</param>16360<param name="callback">16361The callback to run.16362</param>16363<returns>16364The next timer interval.16365</returns>16366<remarks>16367<para>16368The callback function is passed the current timer interval and returns the16369next timer interval. If the returned value is the same as the one passed16370in, the periodic alarm continues, otherwise a new alarm is scheduled.16371</para>16372<para>16373To cancel a currently running timer, call <c>Sdl.SDL_SetTimer(0, null);</c>16374</para>16375<para>16376The timer callback function may run in a different thread than your main16377constant, and so shouldn't call any functions from within itself.16378</para>16379<para>16380The maximum resolution of this timer is 10 ms, which means that if you16381request a 16 ms timer, your callback will run approximately 20 ms later on16382an unloaded system. If you wanted to set a flag signaling a frame update at1638330 frames per second (every 33 ms), you might set a timer for 30 ms.16384</para>16385<para>16386If you use this function, you need to pass <see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/> to16387<see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>.16388</para>16389<para>16390This function is kept for compatibility but has been superseded by the new16391timer functions <see cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/> and16392<see cref="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)"/> which support multiple timers.16393</para>16394<p>16395Binds to C-function call in SDL_timer.h:16396<code>extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval,16397SDL_TimerCallback callback)</code>16398</p>16399</remarks>16400<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>16401<seealso cref="T:Tao.Sdl.Sdl.SDL_TimerCallback"/>16402</member>16403<member name="M:Tao.Sdl.Sdl.SDL_SetTimer(System.UInt32,Tao.Sdl.Sdl.SDL_TimerCallback)">16404<summary>16405Set a callback to run after the specified number of milliseconds has elapsed.16406</summary>16407<param name="interval">16408The timer interval.16409</param>16410<param name="callback">16411The callback to run.16412</param>16413<returns>16414The next timer interval.16415</returns>16416<remarks>16417<para>16418The callback function is passed the current timer interval and returns the16419next timer interval. If the returned value is the same as the one passed16420in, the periodic alarm continues, otherwise a new alarm is scheduled.16421</para>16422<para>16423To cancel a currently running timer, call <c>Sdl.SDL_SetTimer(0, null);</c>16424</para>16425<para>16426The timer callback function may run in a different thread than your main16427constant, and so shouldn't call any functions from within itself.16428</para>16429<para>16430The maximum resolution of this timer is 10 ms, which means that if you16431request a 16 ms timer, your callback will run approximately 20 ms later on16432an unloaded system. If you wanted to set a flag signaling a frame update at1643330 frames per second (every 33 ms), you might set a timer for 30 ms.16434</para>16435<para>16436If you use this function, you need to pass <see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/> to16437<see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>.16438</para>16439<para>16440This function is kept for compatibility but has been superseded by the new16441timer functions <see cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/> and16442<see cref="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)"/> which support multiple timers.16443</para>16444<p>16445Binds to C-function call in SDL_timer.h:16446<code>extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval,16447SDL_TimerCallback callback)</code>16448</p>16449</remarks>16450<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>16451<seealso cref="T:Tao.Sdl.Sdl.SDL_TimerCallback"/>16452</member>16453<member name="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)">16454<summary>16455Add a timer which will call a callback after the16456specified number of milliseconds has elapsed.16457</summary>16458<param name="callback">16459The callback to run.16460</param>16461<param name="interval">16462The timer interval.16463</param>16464<returns>16465Returns an ID value for the added timer or NULL if16466there was an error.16467</returns>16468<remarks>16469<para>16470Adds a callback function to be run after the specified number of16471milliseconds has elapsed. The callback function is passed the current16472timer interval and the user supplied parameter from the SDL_AddTimer16473call and returns the next timer interval. If the returned value from16474the callback is the same as the one passed in, the periodic alarm16475continues, otherwise a new alarm is scheduled.16476</para>16477<para>16478To cancel a currently running timer call <see cref="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)"/>16479with the timer ID returned from SDL_AddTimer.16480</para>16481<para>16482The timer callback function may run in a different thread than your main16483program, and so shouldn't call any functions from within itself.16484You may always call SDL_PushEvent, however.16485</para>16486<para>16487The granularity of the timer is platform-dependent,16488but you should count on it being at least 10 ms as this is the16489most common number. This means that if you request a 16 ms timer,16490your callback will run approximately 20 ms later on an unloaded16491system. If you wanted to set a flag signaling a frame update at1649230 frames per second (every 33 ms), you might set a timer for1649330 ms (see example below). If you use this function, you need16494to pass <see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/> to <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>.16495</para>16496<p>16497Binds to C-function call in SDL_timer.h:16498<code>extern DECLSPEC SDL_TimerID SDLCALL16499SDL_AddTimer(Uint32 interval,16500SDL_NewTimerCallback callback, void *param)</code>16501</p>16502</remarks>16503</member>16504<member name="M:Tao.Sdl.Sdl.SDL_AddTimer(System.UInt32,Tao.Sdl.Sdl.SDL_NewTimerCallback)">16505<summary>16506Add a timer which will call a callback after the16507specified number of milliseconds has elapsed.16508</summary>16509<param name="callback">16510The callback to run.16511</param>16512<param name="interval">16513The timer interval.16514</param>16515<returns>16516Returns an ID value for the added timer or NULL if16517there was an error.16518</returns>16519<remarks>16520<para>16521Adds a callback function to be run after the specified number of16522milliseconds has elapsed. The callback function is passed the current16523timer interval and the user supplied parameter from the SDL_AddTimer16524call and returns the next timer interval. If the returned value from16525the callback is the same as the one passed in, the periodic alarm16526continues, otherwise a new alarm is scheduled.16527</para>16528<para>16529To cancel a currently running timer call <see cref="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)"/>16530with the timer ID returned from SDL_AddTimer.16531</para>16532<para>16533The timer callback function may run in a different thread than your main16534program, and so shouldn't call any functions from within itself.16535You may always call SDL_PushEvent, however.16536</para>16537<para>16538The granularity of the timer is platform-dependent,16539but you should count on it being at least 10 ms as this is the16540most common number. This means that if you request a 16 ms timer,16541your callback will run approximately 20 ms later on an unloaded16542system. If you wanted to set a flag signaling a frame update at1654330 frames per second (every 33 ms), you might set a timer for1654430 ms (see example below). If you use this function, you need16545to pass <see cref="F:Tao.Sdl.Sdl.SDL_INIT_TIMER"/> to <see cref="M:Tao.Sdl.Sdl.SDL_Init(System.Int32)"/>.16546</para>16547<p>16548Binds to C-function call in SDL_timer.h:16549<code>extern DECLSPEC SDL_TimerID SDLCALL16550SDL_AddTimer(Uint32 interval,16551SDL_NewTimerCallback callback, void *param)</code>16552</p>16553</remarks>16554</member>16555<member name="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)">16556<summary>16557Remove a timer which was added with <see cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>.16558</summary>16559<param name="t">16560The timer ID to remove.16561</param>16562<returns>16563A boolean value indicating success. SDL_TRUE or SDL_FALSE.16564</returns>16565<remarks>16566<p>16567Binds to C-function call in SDL_timer.h:16568<code>extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID t)</code>16569</p>16570</remarks>16571<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>16572</member>16573<member name="M:Tao.Sdl.Sdl.SDL_VERSION">16574<summary>16575This method can be used to fill a version structure with the compile-time16576version of the SDL library.16577</summary>16578<returns>16579This function returns a <see cref="T:Tao.Sdl.Sdl.SDL_version"/> struct containing the16580compiled version number16581</returns>16582<remarks>16583<p>16584Binds to C-function call in SDL_version.h:16585<code>#define SDL_VERSION(X)16586{16587(X)->major = SDL_MAJOR_VERSION;16588(X)->minor = SDL_MINOR_VERSION;16589(X)->patch = SDL_PATCHLEVEL;16590}</code>16591</p>16592</remarks>16593</member>16594<member name="M:Tao.Sdl.Sdl.SDL_Linked_Version">16595<summary>16596This function gets the version of the dynamically linked SDL library.16597</summary>16598<returns>16599SDL_version struct16600</returns>16601<remarks>16602<p>16603Binds to C-function call in SDL_version.h:16604<code>extern DECLSPEC const SDL_version * SDLCALL SDL_Linked_Version(void)</code>16605</p>16606</remarks>16607</member>16608<member name="M:Tao.Sdl.Sdl.SDL_VERSION_ATLEAST(System.Byte,System.Byte,System.Byte)">16609<summary>16610Will evaluate to true if SDL version is at least X.Y.Z16611</summary>16612<param name="major">Major version number</param>16613<param name="minor">Minor version number</param>16614<param name="patch">Patch version number</param>16615<returns>True if the version of SDL is greater or equal to the version numbers passed in.</returns>16616</member>16617<member name="M:Tao.Sdl.Sdl.SDL_MUSTLOCK(System.IntPtr)">16618<summary>16619Evaluates to true if the surface needs to be locked before access16620</summary>16621<param name="surface"></param>16622<returns>166231 if surface must be locked. 0 if it does not.16624</returns>16625<remarks>16626<p>Binds to C-function call in SDL_video.h:16627<code>#define SDL_MUSTLOCK(surface) (surface->offset || ((surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_RLEACCEL)) != 0))</code>16628</p>16629</remarks>16630</member>16631<member name="M:Tao.Sdl.Sdl.SDL_VideoDriverName(System.String,System.Int32)">16632<summary>16633This function returns a string with the name of the16634video driver.16635</summary>16636<remarks>16637It returns NULL if no driver has been initialized.16638<p>Binds to C-function call in SDL_video.h:16639<code>extern DECLSPEC char * SDLCALL SDL_VideoDriverName(char *namebuf, int maxlen)</code>16640</p>16641</remarks>16642<returns>16643Returns a string containing the driver name.16644It returns null if no driver has been initialized.16645</returns>16646<param name="maxlen">16647Length of string16648</param>16649<param name="namebuf">16650A dummy string that must be initialized before being passed in.16651</param>16652</member>16653<member name="M:Tao.Sdl.Sdl.SDL_GetVideoSurface">16654<summary>16655This function returns a pointer to the current display surface.16656</summary>16657<remarks>16658If SDL is doing format conversion on the display surface, this16659function returns the publicly visible surface, not the real video16660surface.16661<p>Binds to C-function call in SDL_video.h:16662<code>extern DECLSPEC SDL_Surface * SDLCALL SDL_GetVideoSurface(void)</code>16663</p>16664</remarks>16665<returns>16666It returns a pointer to a SDL_Surface struct.16667</returns>16668<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface"/>16669</member>16670<member name="M:Tao.Sdl.Sdl.SDL_GetVideoInfo">16671<summary>16672This function returns a read-only pointer to information16673about the video hardware.16674</summary>16675<remarks>16676If this is called before <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>, the 'vfmt'16677member of the returned structure will contain the pixel16678format of the "best" video mode.16679<p>Binds to C-function call in SDL_video.h:16680<code>extern DECLSPEC const SDL_VideoInfo * SDLCALL SDL_GetVideoInfo(void)</code>16681</p>16682</remarks>16683<returns>IntPtr to SDL_VideoInfo struct</returns>16684<see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>16685<see cref="T:Tao.Sdl.Sdl.SDL_VideoInfo"/>16686</member>16687<member name="M:Tao.Sdl.Sdl.SDL_VideoModeOK(System.Int32,System.Int32,System.Int32,System.Int32)">16688<summary>16689Check to see if a particular video mode is supported.16690</summary>16691<remarks>16692SDL_VideoModeOK returns 0 if the requested mode is not supported under any16693bit depth,16694or returns the bits-per-pixel of the closest available mode16695with the16696given width, height and requested <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/> flags. See <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>.16697<p>The bits-per-pixel value returned is only a suggested mode.16698You can usually request and bpp you want when setting the video mode16699and SDL will emulate that color depth with a shadow video surface.16700</p>16701<p>16702The arguments to SDL_VideoModeOK() are the same ones you would16703pass to16704<see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>16705</p>16706<p>Binds to C-function call in SDL_video.h:16707<code>extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags)</code>16708</p>16709</remarks>16710<param name="width">Width of mode</param>16711<param name="height">Height of mode</param>16712<param name="bpp">bit depth of Mode</param>16713<param name="flags"></param>16714<returns></returns>16715</member>16716<member name="M:Tao.Sdl.Sdl.SDL_VideoModeOK(System.Int32,System.Int32,System.Int32,System.UInt32)">16717<summary>16718Check to see if a particular video mode is supported.16719</summary>16720<remarks>16721SDL_VideoModeOK returns 0 if the requested mode is not supported under any16722bit depth,16723or returns the bits-per-pixel of the closest available mode16724with the16725given width, height and requested <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/> flags. See <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>.16726<p>The bits-per-pixel value returned is only a suggested mode.16727You can usually request and bpp you want when setting the video mode16728and SDL will emulate that color depth with a shadow video surface.16729</p>16730<p>16731The arguments to SDL_VideoModeOK() are the same ones you would16732pass to16733<see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>16734</p>16735<p>Binds to C-function call in SDL_video.h:16736<code>extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags)</code>16737</p>16738</remarks>16739<param name="width">Width of mode</param>16740<param name="height">Height of mode</param>16741<param name="bpp">bit depth of Mode</param>16742<param name="flags"></param>16743<returns></returns>16744</member>16745<member name="M:Tao.Sdl.Sdl.SDL_ListModes(System.IntPtr,System.Int32)">16746<summary>16747Return a pointer to an array of available screen dimensions for the16748given format and video flags, sorted largest to smallest.16749Returns16750NULL if there are no dimensions available for a particular format,16751or (SDL_Rect **)-1 if any dimension is okay for the given format.16752</summary>16753<remarks>16754If 'format' is NULL, the mode list will be for the format given16755by <see cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo"/>()->vfmt.16756The flag parameter is an OR'd combination of <see cref="T:Tao.Sdl.Sdl.SDL_Surface">surface</see> flags.16757The flags are the same as those used <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> and they16758play a strong role in deciding what modes are valid.16759For instance, if you pass SDL_HWSURFACE as a flag only modes that16760support hardware video surfaces will be returned.16761<p>Binds to C-function call in SDL_video.h:16762<code>extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint32 flags)</code>16763</p>16764</remarks>16765<param name="format"></param>16766<param name="flags"></param>16767<returns>Returns null if no modes are available. If all modes are available returns an empty array.</returns>16768<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>16769<seealso cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo">SDL_GetVideoInfo</seealso>16770<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect">SDL_Rect</seealso>16771<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>16772</member>16773<member name="M:Tao.Sdl.Sdl.SDL_ListModes(System.IntPtr,System.UInt32)">16774<summary>16775Return a pointer to an array of available screen dimensions for the16776given format and video flags, sorted largest to smallest.16777Returns16778NULL if there are no dimensions available for a particular format,16779or (SDL_Rect **)-1 if any dimension is okay for the given format.16780</summary>16781<remarks>16782If 'format' is NULL, the mode list will be for the format given16783by <see cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo"/>()->vfmt.16784The flag parameter is an OR'd combination of <see cref="T:Tao.Sdl.Sdl.SDL_Surface">surface</see> flags.16785The flags are the same as those used <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> and they16786play a strong role in deciding what modes are valid.16787For instance, if you pass SDL_HWSURFACE as a flag only modes that16788support hardware video surfaces will be returned.16789<p>Binds to C-function call in SDL_video.h:16790<code>extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint32 flags)</code>16791</p>16792</remarks>16793<param name="format"></param>16794<param name="flags"></param>16795<returns>Returns null if no modes are available. If all modes are available returns an empty array.</returns>16796<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>16797<seealso cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo">SDL_GetVideoInfo</seealso>16798<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect">SDL_Rect</seealso>16799<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>16800</member>16801<member name="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">16802<summary>16803Set up a video mode with the specified width, height16804and bits-per-pixel.16805</summary>16806<remarks>16807If 'bpp' is 0, it is treated as the current display bits per pixel.16808<p>16809The flags parameter is the same as the flags field of the SDL_Surface16810structure. OR'd combinations of the following values are valid.16811</p>16812<list type="table">16813<listheader>16814<term>Flag</term>16815<description>Description</description>16816</listheader>16817<item>16818<term><see cref="F:Tao.Sdl.Sdl.SDL_SWSURFACE"/></term>16819<description>Create the video surface in system memory.</description>16820</item>16821<item>16822<term><see cref="F:Tao.Sdl.Sdl.SDL_HWSURFACE"/></term>16823<description>Create the video surface in video memory ,if possible,16824and you may have to call SDL_LockSurface()16825in order to access the raw framebuffer. Otherwise, the video16826surface16827will be created in system memory.</description>16828</item>16829<item>16830<term><see cref="F:Tao.Sdl.Sdl.SDL_ASYNCBLIT"/></term>16831<description>Enables the use of asynchronous updates16832of the display surface, but you must always lock before16833accessing pixels.16834SDL will wait for updates to complete before returning from the16835lock. This will usually slow down16836blitting on single CPU machines, but may provide a16837speed increase on SMP systems.</description>16838</item>16839<item>16840<term><see cref="F:Tao.Sdl.Sdl.SDL_ANYFORMAT"/></term>16841<description>Normally, if a video surface of the16842requested bits-per-pixel (bpp) is not available,16843SDL will emulate one with a shadow surface.16844Passing SDL_ANYFORMAT prevents this and causes16845SDL to use the video surface, regardless of its16846pixel depth.</description>16847</item>16848<item>16849<term><see cref="F:Tao.Sdl.Sdl.SDL_HWPALETTE"/></term>16850<description>Give SDL exclusive palette access.16851Without this flag you may not always get the the16852colors you request with <see cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>16853or <see cref="M:Tao.Sdl.Sdl.SDL_SetPalette(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>. You should16854look16855at the video surface structure to determine the actual palette.16856If SDL cannot guarantee that the colors you request can be set,16857i.e. if the colormap is shared, then the video surface may be16858created16859under emulation in system memory, overriding the SDL_HWSURFACE16860flag.16861</description>16862</item>16863<item>16864<term><see cref="F:Tao.Sdl.Sdl.SDL_DOUBLEBUF"/></term>16865<description>Enable hardware double buffering;16866only valid with SDL_HWSURFACE. Calling <see cref="M:Tao.Sdl.Sdl.SDL_Flip(System.IntPtr)"/>16867will flip the buffers and update the screen.16868All drawing will take place on the surface that16869is not displayed at the moment. If double buffering16870could not be enabled then SDL_Flip will just16871perform a <see cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)"/>16872on the entire screen. This is usually slower than the normal16873single-buffering16874scheme, but prevents "tearing" artifacts caused by modifying video16875memory while the monitor is refreshing. It should only be used by16876applications that redraw the entire screen on every update.</description>16877</item>16878<item>16879<term><see cref="F:Tao.Sdl.Sdl.SDL_FULLSCREEN"/></term>16880<description>SDL will attempt to use a fullscreen mode.16881If a hardware resolution change is not possible16882(for whatever reason), the next higher resolution16883will be used and the display window centered16884on a black background. The default is to create a windowed mode16885if the current graphics system has a window manager.16886If the SDL library is able to set a fullscreen video mode, this16887flag16888will be set in the surface that is returned.</description>16889</item>16890<item>16891<term><see cref="F:Tao.Sdl.Sdl.SDL_OPENGL"/></term>16892<description>Create an OpenGL rendering context.16893You should have previously set OpenGL16894video attributes with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>.16895</description>16896</item>16897<item>16898<term><see cref="F:Tao.Sdl.Sdl.SDL_OPENGLBLIT"/></term>16899<description>Create an OpenGL rendering context,16900like above, but allow normal blitting operations.16901The screen (2D) surface may have an alpha channel,16902and <see cref="M:Tao.Sdl.Sdl.SDL_UpdateRects(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Rect[])"/> must be used for updating changes16903to the screen surface. NOTE: This option is kept for16904compatibility only, and is not recommended for new code.16905</description>16906</item>16907<item>16908<term><see cref="F:Tao.Sdl.Sdl.SDL_RESIZABLE"/></term>16909<description>Create a resizable window.16910When the window is resized by the user a16911<see cref="F:Tao.Sdl.Sdl.SDL_VIDEORESIZE"/> event is generated and16912SDL_SetVideoMode can be called again with the new size.16913</description>16914</item>16915<item>16916<term><see cref="F:Tao.Sdl.Sdl.SDL_NOFRAME"/></term>16917<description>If possible, SDL_NOFRAME causes16918SDL to create a window with no title bar or16919frame decoration. Fullscreen modes automatically16920have this flag set.16921</description>16922</item>16923</list>1692416925If you rely on functionality provided by certain video flags,16926check the16927flags of the returned surface to make sure that functionality16928is available.16929SDL will fall back to reduced functionality if the exact flags16930you wanted16931are not available.16932<p>Whatever flags SDL_SetVideoMode could satisfy are set16933in the flags member of the returned surface.</p>16934<p>16935The bpp parameter is the number of bits per pixel,16936so a bpp of 24 uses the packed representation of 3 bytes/pixel.16937For the more common 4 bytes/pixel mode, use a bpp of 32.16938Somewhat oddly, both 15 and 16 will request a 2 bytes/pixel mode,16939but different pixel formats.16940</p>16941<p>Binds to C-function call in SDL_video.h:16942<code>extern DECLSPEC SDL_Surface * SDLCALL SDL_SetVideoMode16943(int width, int height, int bpp, Uint32 flags);</code>16944</p>16945</remarks>16946<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>16947<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)">SDL_SetColors</seealso>16948<seealso cref="M:Tao.Sdl.Sdl.SDL_Flip(System.IntPtr)">SDL_Flip</seealso>16949<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>16950<param name="width"></param>16951<param name="height"></param>16952<param name="bpp"></param>16953<param name="flags"></param>16954<returns>The framebuffer surface, or NULL if it fails.16955The surface returned is freed by SDL_Quit() and should not be16956freed by the caller.16957</returns>16958</member>16959<member name="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.UInt32)">16960<summary>16961Set up a video mode with the specified width, height16962and bits-per-pixel.16963</summary>16964<remarks>16965If 'bpp' is 0, it is treated as the current display bits per pixel.16966<p>16967The flags parameter is the same as the flags field of the SDL_Surface16968structure. OR'd combinations of the following values are valid.16969</p>16970<list type="table">16971<listheader>16972<term>Flag</term>16973<description>Description</description>16974</listheader>16975<item>16976<term><see cref="F:Tao.Sdl.Sdl.SDL_SWSURFACE"/></term>16977<description>Create the video surface in system memory.</description>16978</item>16979<item>16980<term><see cref="F:Tao.Sdl.Sdl.SDL_HWSURFACE"/></term>16981<description>Create the video surface in video memory ,if possible,16982and you may have to call SDL_LockSurface()16983in order to access the raw framebuffer. Otherwise, the video16984surface16985will be created in system memory.</description>16986</item>16987<item>16988<term><see cref="F:Tao.Sdl.Sdl.SDL_ASYNCBLIT"/></term>16989<description>Enables the use of asynchronous updates16990of the display surface, but you must always lock before16991accessing pixels.16992SDL will wait for updates to complete before returning from the16993lock. This will usually slow down16994blitting on single CPU machines, but may provide a16995speed increase on SMP systems.</description>16996</item>16997<item>16998<term><see cref="F:Tao.Sdl.Sdl.SDL_ANYFORMAT"/></term>16999<description>Normally, if a video surface of the17000requested bits-per-pixel (bpp) is not available,17001SDL will emulate one with a shadow surface.17002Passing SDL_ANYFORMAT prevents this and causes17003SDL to use the video surface, regardless of its17004pixel depth.</description>17005</item>17006<item>17007<term><see cref="F:Tao.Sdl.Sdl.SDL_HWPALETTE"/></term>17008<description>Give SDL exclusive palette access.17009Without this flag you may not always get the the17010colors you request with <see cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>17011or <see cref="M:Tao.Sdl.Sdl.SDL_SetPalette(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>. You should17012look17013at the video surface structure to determine the actual palette.17014If SDL cannot guarantee that the colors you request can be set,17015i.e. if the colormap is shared, then the video surface may be17016created17017under emulation in system memory, overriding the SDL_HWSURFACE17018flag.17019</description>17020</item>17021<item>17022<term><see cref="F:Tao.Sdl.Sdl.SDL_DOUBLEBUF"/></term>17023<description>Enable hardware double buffering;17024only valid with SDL_HWSURFACE. Calling <see cref="M:Tao.Sdl.Sdl.SDL_Flip(System.IntPtr)"/>17025will flip the buffers and update the screen.17026All drawing will take place on the surface that17027is not displayed at the moment. If double buffering17028could not be enabled then SDL_Flip will just17029perform a <see cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)"/>17030on the entire screen. This is usually slower than the normal17031single-buffering17032scheme, but prevents "tearing" artifacts caused by modifying video17033memory while the monitor is refreshing. It should only be used by17034applications that redraw the entire screen on every update.</description>17035</item>17036<item>17037<term><see cref="F:Tao.Sdl.Sdl.SDL_FULLSCREEN"/></term>17038<description>SDL will attempt to use a fullscreen mode.17039If a hardware resolution change is not possible17040(for whatever reason), the next higher resolution17041will be used and the display window centered17042on a black background. The default is to create a windowed mode17043if the current graphics system has a window manager.17044If the SDL library is able to set a fullscreen video mode, this17045flag17046will be set in the surface that is returned.</description>17047</item>17048<item>17049<term><see cref="F:Tao.Sdl.Sdl.SDL_OPENGL"/></term>17050<description>Create an OpenGL rendering context.17051You should have previously set OpenGL17052video attributes with <see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>.17053</description>17054</item>17055<item>17056<term><see cref="F:Tao.Sdl.Sdl.SDL_OPENGLBLIT"/></term>17057<description>Create an OpenGL rendering context,17058like above, but allow normal blitting operations.17059The screen (2D) surface may have an alpha channel,17060and <see cref="M:Tao.Sdl.Sdl.SDL_UpdateRects(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Rect[])"/> must be used for updating changes17061to the screen surface. NOTE: This option is kept for17062compatibility only, and is not recommended for new code.17063</description>17064</item>17065<item>17066<term><see cref="F:Tao.Sdl.Sdl.SDL_RESIZABLE"/></term>17067<description>Create a resizable window.17068When the window is resized by the user a17069<see cref="F:Tao.Sdl.Sdl.SDL_VIDEORESIZE"/> event is generated and17070SDL_SetVideoMode can be called again with the new size.17071</description>17072</item>17073<item>17074<term><see cref="F:Tao.Sdl.Sdl.SDL_NOFRAME"/></term>17075<description>If possible, SDL_NOFRAME causes17076SDL to create a window with no title bar or17077frame decoration. Fullscreen modes automatically17078have this flag set.17079</description>17080</item>17081</list>1708217083If you rely on functionality provided by certain video flags,17084check the17085flags of the returned surface to make sure that functionality17086is available.17087SDL will fall back to reduced functionality if the exact flags17088you wanted17089are not available.17090<p>Whatever flags SDL_SetVideoMode could satisfy are set17091in the flags member of the returned surface.</p>17092<p>17093The bpp parameter is the number of bits per pixel,17094so a bpp of 24 uses the packed representation of 3 bytes/pixel.17095For the more common 4 bytes/pixel mode, use a bpp of 32.17096Somewhat oddly, both 15 and 16 will request a 2 bytes/pixel mode,17097but different pixel formats.17098</p>17099<p>Binds to C-function call in SDL_video.h:17100<code>extern DECLSPEC SDL_Surface * SDLCALL SDL_SetVideoMode17101(int width, int height, int bpp, Uint32 flags);</code>17102</p>17103</remarks>17104<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>17105<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)">SDL_SetColors</seealso>17106<seealso cref="M:Tao.Sdl.Sdl.SDL_Flip(System.IntPtr)">SDL_Flip</seealso>17107<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17108<param name="width"></param>17109<param name="height"></param>17110<param name="bpp"></param>17111<param name="flags"></param>17112<returns>The framebuffer surface, or NULL if it fails.17113The surface returned is freed by SDL_Quit() and should not be17114freed by the caller.17115</returns>17116</member>17117<member name="M:Tao.Sdl.Sdl.SDL_UpdateRects(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Rect[])">17118<summary>17119Makes sure the given list of rectangles is updated on the given17120screen.17121</summary>17122<remarks>17123The rectangles must all be confined within the screen boundaries17124(no clipping is done).17125<p>17126This function should not be called while screen is17127<see also="SDL_LockSurface">locked</see>.17128</p>17129<p>Note: It is adviced to call this function only once per frame,17130since each call has some processing overhead. This is no restriction17131since you can pass any number of rectangles each time.17132</p>17133<p>The rectangles are not automatically merged or checked for overlap.17134In general, the programmer can use his knowledge about his particular17135rectangles to merge them in an efficient way, to avoid overdraw.</p>17136<p>Binds to C-function call in SDL_video.h:17137<code>extern DECLSPEC void SDLCALL SDL_UpdateRects (SDL_Surface *screen, int numrects, SDL_Rect *rects)</code>17138</p>17139</remarks>17140<seealso cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_UpdateRect</seealso>17141<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect">SDL_Rect</seealso>17142<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17143<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>17144<param name="screen"></param>17145<param name="numrects"></param>17146<param name="rects"></param>17147</member>17148<member name="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)">17149<summary>17150Makes sure the given area is updated on the given screen.17151</summary>17152<remarks>17153<p>The rectangle must be confined within the screen boundaries (no17154clipping is done).17155</p>17156<p>If 'x', 'y', 'w' and 'h' are all 0, SDL_UpdateRect will update the17157entire screen.</p>17158<p>These functions should not be called while 'screen' is17159<see cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">locked</see>.</p>17160<p>Binds to C-function call in SDL_video.h:17161<code>extern DECLSPEC void SDLCALL SDL_UpdateRect (SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h)</code>17162</p>17163</remarks>17164<param name="screen"></param>17165<param name="w"></param>17166<param name="h"></param>17167<param name="x"></param>17168<param name="y"></param>17169</member>17170<member name="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.UInt32,System.UInt32)">17171<summary>17172Makes sure the given area is updated on the given screen.17173</summary>17174<remarks>17175<p>The rectangle must be confined within the screen boundaries (no17176clipping is done).17177</p>17178<p>If 'x', 'y', 'w' and 'h' are all 0, SDL_UpdateRect will update the17179entire screen.</p>17180<p>These functions should not be called while 'screen' is17181<see cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">locked</see>.</p>17182<p>Binds to C-function call in SDL_video.h:17183<code>extern DECLSPEC void SDLCALL SDL_UpdateRect (SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h)</code>17184</p>17185</remarks>17186<param name="screen"></param>17187<param name="w"></param>17188<param name="h"></param>17189<param name="x"></param>17190<param name="y"></param>17191</member>17192<member name="M:Tao.Sdl.Sdl.SDL_Flip(System.IntPtr)">17193<summary>17194Swaps screen buffers17195</summary>17196<remarks>17197On hardware that supports double-buffering, this function sets up17198a flip17199and returns. The hardware will wait for vertical retrace, and17200then swap17201video buffers before the next video surface blit or lock will17202return.17203On hardware that does not support double-buffering, this is17204equivalent17205to calling <see cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)"/>(screen, 0, 0, 0, 0)17206<p>17207The SDL_DOUBLEBUF flag must have been passed to <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>17208when17209setting the video mode for this function to perform hardware17210flipping.</p>17211</remarks>17212<param name="screen"></param>17213<returns>17214This function returns 0 if successful, or -1 if there was an17215error.17216</returns>17217<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>17218<seealso cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_UpdateRect</seealso>17219<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17220</member>17221<member name="M:Tao.Sdl.Sdl.SDL_SetGamma(System.Single,System.Single,System.Single)">17222<summary>17223Set the gamma correction for each of the color channels.17224</summary>17225<remarks>17226<p>Sets the "gamma function" for the display of each color component.17227Gamma controls the brightness/contrast of colors displayed on the screen.17228A gamma value of 1.0 is identity (i.e., no adjustment is made).17229</p>17230<p>This function adjusts the gamma based on the "gamma function"17231parameter, you can directly specify lookup tables for gamma adjustment17232with SDL_SetGammaRamp.</p>17233<p>Not all display hardware is able to change gamma.</p>17234<p>The gamma values range (approximately) between 0.1 and 10.0.</p>17235<p>If this function isn't supported directly by the hardware, it will17236be emulated using gamma ramps, if available. If successful, this17237function returns 0, otherwise it returns -1.</p>17238<p>Binds to C-function call in SDL_video.h:17239<code>extern DECLSPEC int SDLCALL SDL_SetGamma(float red, float green, float blue)</code>17240</p>17241</remarks>17242<param name="blue"></param>17243<param name="green"></param>17244<param name="red"></param>17245<returns>17246If successful, this17247function returns 0, otherwise it returns -1.17248</returns>17249<seealso cref="M:Tao.Sdl.Sdl.SDL_GetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">SDL_GetGammaRamp</seealso>17250<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">SDL_SetGammaRamp</seealso>17251</member>17252<member name="M:Tao.Sdl.Sdl.SDL_SetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">17253<summary>17254Set the gamma translation table for the red, green, and blue17255channels17256of the video hardware.17257</summary>17258<remarks>17259Each table is an array of 2561726016-bit quantities,17261representing a mapping between the input and output for that17262channel.17263The input is the index into the array, and the output is the 16-bit17264gamma value at that index, scaled to the output color precision.17265You may pass NULL for any of the channels to leave it unchanged.17266</remarks>17267<returns>17268If the call succeeds, it will return 0. If the display driver or17269hardware does not support gamma translation, or otherwise fails,17270this function will return -1.17271</returns>17272<param name="blue"></param>17273<param name="green"></param>17274<param name="red"></param>17275<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGamma(System.Single,System.Single,System.Single)">SDL_SetGamma</seealso>17276<seealso cref="M:Tao.Sdl.Sdl.SDL_GetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">SDL_GetGammaRamp</seealso>17277</member>17278<member name="M:Tao.Sdl.Sdl.SDL_GetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">17279<summary>17280Gets the color gamma lookup tables for the display.17281</summary>17282<remarks>17283Gets the gamma translation lookup tables currently used by the display.17284Each table is an array of 256 <see cref="T:System.Int16"/> values.17285<p>17286You must pass in valid pointers to arrays of 256 16-bit quantities.17287Any of the pointers may be NULL to ignore that channel.17288</p>17289<p>Not all display hardware is able to change gamma.17290</p>17291<p>Binds to C-function call in SDL_video.h:17292<code>int SDLCALL SDL_GetGammaRamp(Uint16 *red, Uint16 *green, Uint16 *blue)</code>17293</p>17294</remarks>17295<returns>17296If the call succeeds, it will return 0. If the display driver or17297hardware does not support gamma translation, or otherwise fails,17298this function will return -1.17299</returns>17300<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGamma(System.Single,System.Single,System.Single)">SDL_SetGamma</seealso>17301<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">SDL_SetGammaRamp</seealso>17302</member>17303<member name="M:Tao.Sdl.Sdl.SDL_GetGammaRamp(System.UInt16[],System.UInt16[],System.UInt16[])">17304<summary>17305Gets the color gamma lookup tables for the display.17306</summary>17307<remarks>17308Gets the gamma translation lookup tables currently used by the display.17309Each table is an array of 256 <see cref="T:System.Int16"/> values.17310<p>17311You must pass in valid pointers to arrays of 256 16-bit quantities.17312Any of the pointers may be NULL to ignore that channel.17313</p>17314<p>Not all display hardware is able to change gamma.17315</p>17316<p>Binds to C-function call in SDL_video.h:17317<code>int SDLCALL SDL_GetGammaRamp(Uint16 *red, Uint16 *green, Uint16 *blue)</code>17318</p>17319</remarks>17320<returns>17321If the call succeeds, it will return 0. If the display driver or17322hardware does not support gamma translation, or otherwise fails,17323this function will return -1.17324</returns>17325<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGamma(System.Single,System.Single,System.Single)">SDL_SetGamma</seealso>17326<seealso cref="M:Tao.Sdl.Sdl.SDL_SetGammaRamp(System.Int16[],System.Int16[],System.Int16[])">SDL_SetGammaRamp</seealso>17327</member>17328<member name="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)">17329<summary>17330Sets a portion of the colormap for the given 8-bit surface.17331</summary>17332<remarks>17333<p>When surface is the surface associated with the current display,17334the display colormap will be updated with the requested colors.17335If SDL_HWPALETTE was set in <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> flags, SDL_SetColors17336will always return 1, and the palette is guaranteed to be set17337the way you desire, even if the window colormap has to be warped17338or run under emulation.</p>1733917340<p>The color components of a SDL_Color structure are 8-bits in size,17341giving you a total of 256^3 =16777216 colors.</p>17342<p>Palettized (8-bit) screen surfaces with the SDL_HWPALETTE17343flag have two palettes, a logical palette that is used for17344mapping blits to/from the surface and a physical palette (that17345determines how the hardware will map the colors to the display).17346SDL_SetColors modifies both palettes (if present), and is equivalent17347to calling SDL_SetPalette with the flags set to17348(SDL_LOGPAL | SDL_PHYSPAL).17349</p>17350<p>When 'surface' is the surface associated with the current17351display, the17352display colormap will be updated with the requested colors. If17353SDL_HWPALETTE was set in SDL_SetVideoMode() flags, SDL_SetColors()17354will always return 1, and the palette is guaranteed to be set17355the way17356you desire, even if the window colormap has to be warped or17357run under17358emulation.</p>17359<p>Binds to C-function call in SDL_video.h:17360<code>extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors)</code>17361</p>17362</remarks>17363<example>/* Create a display surface with a grayscale palette */17364SDL_Surface *screen;17365SDL_Color colors[256];17366int i;17367.17368.17369.17370/* Fill colors with color information */17371for(i=0;i<256;i++)17372{17373colors[i].r=i;17374colors[i].g=i;17375colors[i].b=i;17376}1737717378/* Create display */17379screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE);17380if(!screen)17381{17382printf("Couldn't set video mode: %s\n", SDL_GetError());17383exit(-1);17384}1738517386/* Set palette */17387SDL_SetColors(screen, colors, 0, 256);17388.17389.17390.17391.17392</example>17393<param name="surface"></param>17394<param name="firstcolor"></param>17395<param name="ncolors"></param>17396<param name="colors"></param>17397<returns>17398If 'surface' is not a palettized surface, this function does nothing,17399returning 0.17400If all of the colors were set as passed to SDL_SetColors(), it will17401return 1. If not all the color entries were set exactly as given,17402it will return 0, and you should look at the surface palette to17403determine the actual color palette.17404</returns>17405<seealso cref="T:Tao.Sdl.Sdl.SDL_Color">SDL_Color</seealso>17406<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17407<seealso cref="M:Tao.Sdl.Sdl.SDL_SetPalette(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)">SDL_SetPalette</seealso>17408<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>17409</member>17410<member name="M:Tao.Sdl.Sdl.SDL_SetPalette(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)">17411<summary>17412Sets the colors in the palette of an 8-bit surface.17413</summary>17414<remarks>Palettized (8-bit) screen surfaces with the SDL_HWPALETTE17415flag have two palettes, a logical palette that is used for mapping17416blits to/from the surface and a physical palette (that determines17417how the hardware will map the colors to the display). SDL_BlitSurface17418always uses the logical palette when blitting surfaces (if it has to17419convert between surface pixel formats). Because of this, it is often17420useful to modify only one or the other palette to achieve various17421special color effects (e.g., screen fading, color flashes, screen dimming).1742217423<p>This function can modify either the logical or physical palette17424by specifing SDL_LOGPAL or SDL_PHYSPALthe in the flags parameter.</p>1742517426<p>When surface is the surface associated with the current display,17427the display colormap will be updated with the requested colors.17428If SDL_HWPALETTE was set in SDL_SetVideoMode flags, SDL_SetPalette17429will always return 1, and the palette is guaranteed to be set the17430way you desire, even if the window colormap has to be warped or run17431under emulation.</p>17432<p>The color components of a SDL_Color structure are 8-bits17433in size, giving you a total of 2563=16777216 colors.</p>17434<p>17435'flags' is one or both of:17436SDL_LOGPAL -- set logical palette, which controls how blits17437are mapped to/from the surface,17438SDL_PHYSPAL -- set physical palette, which controls how pixels17439look on the screen17440Only screens have physical palettes. Separate change of17441physical/logical17442palettes is only possible if the screen has SDL_HWPALETTE set.17443</p>1744417445SDL_SetColors() is equivalent to calling this function with17446flags = (SDL_LOGPAL|SDL_PHYSPAL).17447<p>Binds to C-function call in SDL_video.h:17448<code>extern DECLSPEC int SDLCALL SDL_SetPalette(SDL_Surface *surface, int flags, SDL_Color *colors, int firstcolor, int ncolors)</code>17449</p>17450</remarks>17451<example><code>17452/* Create a display surface with a grayscale palette */17453SDL_Surface *screen;17454SDL_Color colors[256];17455int i;17456.17457.17458.17459/* Fill colors with color information */17460for(i=0;i<256;i++)17461{17462colors[i].r=i;17463colors[i].g=i;17464colors[i].b=i;17465}1746617467/* Create display */17468screen=SDL_SetVideoMode(640, 480, 8, SDL_HWPALETTE);17469if(!screen)17470{17471printf("Couldn't set video mode: %s\n", SDL_GetError());17472exit(-1);17473}1747417475/* Set palette */17476SDL_SetPalette(screen, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256);17477.17478.17479.17480.</code></example>17481<param name="surface"></param>17482<param name="colors"></param>17483<param name="firstcolor"></param>17484<param name="flags"></param>17485<param name="ncolors"></param>17486<returns>17487If surface is not a palettized surface, this function does17488nothing, returning 0. If all of the colors were set as passed to17489SDL_SetPalette, it will return 1. If not all the color entries were17490set exactly as given, it will return 0, and you should look at the17491surface palette to determine the actual color palette.17492</returns>17493</member>17494<member name="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">17495<summary>17496Map a RGB color value to a pixel format.17497</summary>17498<remarks>17499Maps the RGB color value to the specified pixel format and returns the pixel17500value as a 32-bit int.17501<p>If the format has a palette (8-bit) the index of the closest17502matching color in the palette will be returned.</p>17503<p>If the specified pixel format has an alpha component it will be17504returned as all 1 bits (fully opaque).</p>17505<p>Binds to C-function call in SDL_video.h:17506<code>extern DECLSPEC Uint32 SDLCALL SDL_MapRGB (SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b)</code>17507</p>17508</remarks>17509<param name="format">IntPtr to <see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/></param>17510<param name="r"></param>17511<param name="g"></param>17512<param name="b"></param>17513<returns>A pixel value best approximating the given RGB color17514value for a given pixel format. If the pixel format bpp (color depth)17515is less than 32-bpp then the unused upper bits of the return value17516can safely be ignored (e.g., with a 16-bpp format the return value17517can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp17518format).</returns>17519<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGB(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGB</seealso>17520<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>17521<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>17522<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17523</member>17524<member name="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">17525<summary>17526Map a RGBA color value to a pixel format.17527</summary>17528<remarks>17529Maps the RGBA color value to the specified pixel format and17530returns the pixel value as a 32-bit int.17531<p>If the format has a palette (8-bit) the index of the closest17532matching color in the palette will be returned.</p>17533<p>If the specified pixel format has no alpha component the alpha17534value will be ignored (as it will be in formats with a palette).</p>17535<p>Binds to C-function call in SDL_video.h:17536<code>extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA (SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b, Uint8 a)</code>17537</p>17538</remarks>17539<param name="format"></param>17540<param name="r"></param>17541<param name="g"></param>17542<param name="b"></param>17543<param name="a"></param>17544<returns>A pixel value best approximating the given RGBA17545color value for a given pixel format. If the pixel format17546bpp (color depth) is less than 32-bpp then the unused upper17547bits of the return value can safely be ignored (e.g., with a1754816-bpp format the return value can be assigned to a Uint16,17549and similarly a Uint8 for an 8-bpp format).</returns>17550<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGB(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGB</seealso>17551<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>17552<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>17553<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17554</member>17555<member name="M:Tao.Sdl.Sdl.SDL_GetRGB(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@)">17556<summary>17557Get RGB values from a pixel in the specified pixel format.17558</summary>17559<remarks>17560Get RGB component values from a pixel stored in the specified pixel format.17561<p>This function uses the entire 8-bit [0..255] range when converting17562color components from pixel formats with less than 8-bits per RGB component17563(e.g., a completely white pixel in 16-bit RGB565 format would return17564[0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]).</p>17565<p>Binds to C-function call in SDL_video.h:17566<code>void SDL_GetRGB(Uint32 pixel, SDL_PixelFormat *fmt, Uint8 *r, Uint8 *g, Uint8 *b);</code>17567</p>17568</remarks>17569<param name="pixel"></param>17570<param name="fmt"></param>17571<param name="r"></param>17572<param name="g"></param>17573<param name="b"></param>17574<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>17575<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>17576<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>17577<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17578</member>17579<member name="M:Tao.Sdl.Sdl.SDL_GetRGB(System.UInt32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@)">17580<summary>17581Get RGB values from a pixel in the specified pixel format.17582</summary>17583<remarks>17584Get RGB component values from a pixel stored in the specified pixel format.17585<p>This function uses the entire 8-bit [0..255] range when converting17586color components from pixel formats with less than 8-bits per RGB component17587(e.g., a completely white pixel in 16-bit RGB565 format would return17588[0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]).</p>17589<p>Binds to C-function call in SDL_video.h:17590<code>void SDL_GetRGB(Uint32 pixel, SDL_PixelFormat *fmt, Uint8 *r, Uint8 *g, Uint8 *b);</code>17591</p>17592</remarks>17593<param name="pixel"></param>17594<param name="fmt"></param>17595<param name="r"></param>17596<param name="g"></param>17597<param name="b"></param>17598<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>17599<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>17600<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>17601<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17602</member>17603<member name="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">17604<summary>17605Get RGBA values from a pixel in the specified pixel format.17606</summary>17607<remarks>17608Get RGBA component values from a pixel stored in the specified pixel17609format.17610<p>This function uses the entire 8-bit [0..255] range when converting17611color components from pixel formats with less than 8-bits per RGB17612component (e.g., a completely white pixel in 16-bit RGB565 format would17613return [0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]).</p>17614<p>If the surface has no alpha component, the alpha will be returned17615as 0xff (100% opaque).</p>17616<p>Binds to C-function call in SDL_video.h:17617<code>void SDL_GetRGBA(Uint32 pixel, SDL_PixelFormat *fmt, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)</code>17618</p>17619</remarks>17620<param name="pixel"></param>17621<param name="fmt"></param>17622<param name="r"></param>17623<param name="g"></param>17624<param name="b"></param>17625<param name="a"></param>17626<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGB(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGB</seealso>17627<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>17628<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>17629<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17630</member>17631<member name="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">17632<summary>17633Create an empty SDL_Surface17634</summary>17635<remarks>17636Allocate an empty surface (must be called after <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>).17637<p>If depth is 8 bits an empty palette is allocated for the surface,17638otherwise a 'packed-pixel' <see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/> is created using the17639[RGBA]mask's provided (see SDL_PixelFormat). The flags specifies17640the type of surface that should be created, it is an OR'd combination17641of the following possible values.</p>17642<list type="table">17643<item>17644<term><see cref="F:Tao.Sdl.Sdl.SDL_SWSURFACE"/></term>17645<description>17646SDL will create the surface in system memory.17647This improves the performance of pixel level access,17648however you may not be able to take advantage of17649some types of hardware blitting.17650</description>17651</item>17652<item>17653<term><see cref="F:Tao.Sdl.Sdl.SDL_HWSURFACE"/></term>17654<description>17655SDL will attempt to create the surface in17656video memory. This will allow SDL to take advantage17657of Video->Video blits (which are often accelerated).17658</description>17659</item>17660<item>17661<term><see cref="F:Tao.Sdl.Sdl.SDL_SRCCOLORKEY"/></term>17662<description>17663This flag turns on colourkeying for17664blits from this surface. If SDL_HWSURFACE is also17665specified and colourkeyed blits are hardware-accelerated,17666then SDL will attempt to place the surface in video17667memory. Use <see cref="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)"/>17668to set or clear this flag17669after surface creation.17670</description>17671</item>17672<item>17673<term><see cref="F:Tao.Sdl.Sdl.SDL_SRCALPHA"/></term>17674<description>17675This flag turns on alpha-blending for17676blits from this surface. If SDL_HWSURFACE is also17677specified and alpha-blending blits are17678hardware-accelerated, then the surface will be placed17679in video memory if possible. Use17680<see cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)"/> to set17681or clear this flag after surface creation.17682</description>17683</item>17684</list>17685<p><b>Note:</b> If an alpha-channel is specified (that is,17686if Amask is nonzero), then the SDL_SRCALPHA flag is17687automatically set. You may remove this flag by17688calling <see cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)"/> after surface creation.</p>17689<p>Binds to C-function call in SDL_video.h:17690<code>SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)</code>17691</p>17692</remarks>17693<example>17694/* Create a 32-bit surface with the bytes of each pixel in R,G,B,A order,17695as expected by OpenGL for textures */17696SDL_Surface *surface;17697Uint32 rmask, gmask, bmask, amask;1769817699/* SDL interprets each pixel as a 32-bit number, so our masks must depend17700on the endianness (byte order) of the machine */17701#if SDL_BYTEORDER == SDL_BIG_ENDIAN17702rmask = 0xff000000;17703gmask = 0x00ff0000;17704bmask = 0x0000ff00;17705amask = 0x000000ff;17706#else17707rmask = 0x000000ff;17708gmask = 0x0000ff00;17709bmask = 0x00ff0000;17710amask = 0xff000000;17711#endif1771217713surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,17714rmask, gmask, bmask, amask);17715if(surface == NULL)17716{17717fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError());17718exit(1);17719}17720</example>17721<param name="flags"></param>17722<param name="width"></param>17723<param name="height"></param>17724<param name="depth"></param>17725<param name="Rmask"></param>17726<param name="Gmask"></param>17727<param name="Bmask"></param>17728<param name="Amask"></param>17729<returns>IntPtr to <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>, or NULL upon error.</returns>17730<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurfaceFrom</seealso>17731<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)">SDL_FreeSurface</seealso>17732<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>17733<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>17734<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17735<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17736<seealso cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)">SDL_SetAlpha</seealso>17737<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)">SDL_SetColorKey</seealso>17738</member>17739<member name="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.UInt32,System.Int32,System.Int32,System.Int32,System.UInt32,System.UInt32,System.UInt32,System.UInt32)">17740<summary>17741Create an empty SDL_Surface17742</summary>17743<remarks>17744Allocate an empty surface (must be called after <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>).17745<p>If depth is 8 bits an empty palette is allocated for the surface,17746otherwise a 'packed-pixel' <see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/> is created using the17747[RGBA]mask's provided (see SDL_PixelFormat). The flags specifies17748the type of surface that should be created, it is an OR'd combination17749of the following possible values.</p>17750<list type="table">17751<item>17752<term><see cref="F:Tao.Sdl.Sdl.SDL_SWSURFACE"/></term>17753<description>17754SDL will create the surface in system memory.17755This improves the performance of pixel level access,17756however you may not be able to take advantage of17757some types of hardware blitting.17758</description>17759</item>17760<item>17761<term><see cref="F:Tao.Sdl.Sdl.SDL_HWSURFACE"/></term>17762<description>17763SDL will attempt to create the surface in17764video memory. This will allow SDL to take advantage17765of Video->Video blits (which are often accelerated).17766</description>17767</item>17768<item>17769<term><see cref="F:Tao.Sdl.Sdl.SDL_SRCCOLORKEY"/></term>17770<description>17771This flag turns on colourkeying for17772blits from this surface. If SDL_HWSURFACE is also17773specified and colourkeyed blits are hardware-accelerated,17774then SDL will attempt to place the surface in video17775memory. Use <see cref="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)"/>17776to set or clear this flag17777after surface creation.17778</description>17779</item>17780<item>17781<term><see cref="F:Tao.Sdl.Sdl.SDL_SRCALPHA"/></term>17782<description>17783This flag turns on alpha-blending for17784blits from this surface. If SDL_HWSURFACE is also17785specified and alpha-blending blits are17786hardware-accelerated, then the surface will be placed17787in video memory if possible. Use17788<see cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)"/> to set17789or clear this flag after surface creation.17790</description>17791</item>17792</list>17793<p><b>Note:</b> If an alpha-channel is specified (that is,17794if Amask is nonzero), then the SDL_SRCALPHA flag is17795automatically set. You may remove this flag by17796calling <see cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)"/> after surface creation.</p>17797<p>Binds to C-function call in SDL_video.h:17798<code>SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)</code>17799</p>17800</remarks>17801<example>17802/* Create a 32-bit surface with the bytes of each pixel in R,G,B,A order,17803as expected by OpenGL for textures */17804SDL_Surface *surface;17805Uint32 rmask, gmask, bmask, amask;1780617807/* SDL interprets each pixel as a 32-bit number, so our masks must depend17808on the endianness (byte order) of the machine */17809#if SDL_BYTEORDER == SDL_BIG_ENDIAN17810rmask = 0xff000000;17811gmask = 0x00ff0000;17812bmask = 0x0000ff00;17813amask = 0x000000ff;17814#else17815rmask = 0x000000ff;17816gmask = 0x0000ff00;17817bmask = 0x00ff0000;17818amask = 0xff000000;17819#endif1782017821surface = SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,17822rmask, gmask, bmask, amask);17823if(surface == NULL)17824{17825fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError());17826exit(1);17827}17828</example>17829<param name="flags"></param>17830<param name="width"></param>17831<param name="height"></param>17832<param name="depth"></param>17833<param name="Rmask"></param>17834<param name="Gmask"></param>17835<param name="Bmask"></param>17836<param name="Amask"></param>17837<returns>IntPtr to <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>, or NULL upon error.</returns>17838<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurfaceFrom</seealso>17839<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)">SDL_FreeSurface</seealso>17840<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)">SDL_SetVideoMode</seealso>17841<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>17842<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>17843<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>17844<seealso cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)">SDL_SetAlpha</seealso>17845<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)">SDL_SetColorKey</seealso>17846</member>17847<member name="M:Tao.Sdl.Sdl.SDL_AllocSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">17848<summary>17849Same as <see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>17850</summary>17851<param name="flags"></param>17852<param name="width"></param>17853<param name="height"></param>17854<param name="depth"></param>17855<param name="Rmask"></param>17856<param name="Gmask"></param>17857<param name="Bmask"></param>17858<param name="Amask"></param>17859<returns></returns>17860</member>17861<member name="M:Tao.Sdl.Sdl.SDL_AllocSurface(System.UInt32,System.Int32,System.Int32,System.Int32,System.UInt32,System.UInt32,System.UInt32,System.UInt32)">17862<summary>17863Same as <see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>17864</summary>17865<param name="flags"></param>17866<param name="width"></param>17867<param name="height"></param>17868<param name="depth"></param>17869<param name="Rmask"></param>17870<param name="Gmask"></param>17871<param name="Bmask"></param>17872<param name="Amask"></param>17873<returns></returns>17874</member>17875<member name="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">17876<summary>17877Create an SDL_Surface from pixel data17878</summary>17879<remarks>17880Creates an SDL_Surface from the provided pixel data.17881<p>17882The data stored in pixels is assumed to be of the depth specified17883in the parameter list. The pixel data is not copied into the SDL_Surface17884structure so it should not be freed until the surface has been freed17885with a called to <see cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)"/>. pitch is the length of each scanline17886in bytes. </p>17887<p>17888See <see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> for a more detailed description of the other17889parameters.</p>17890<p>Binds to C-function call in SDL_video.h:17891<code>SDL_Surface *SDL_CreateRGBSurfaceFrom(void *pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)</code>17892</p>17893</remarks>17894<param name="pixels"></param>17895<param name="width"></param>17896<param name="height"></param>17897<param name="depth"></param>17898<param name="pitch">length of each scanline in bytes.</param>17899<param name="Rmask"></param>17900<param name="Gmask"></param>17901<param name="Bmask"></param>17902<param name="Amask"></param>17903<returns>Returns the created surface, or NULL upon error.17904</returns>17905<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>17906<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)"/>17907</member>17908<member name="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32,System.UInt32,System.UInt32,System.UInt32)">17909<summary>17910Create an SDL_Surface from pixel data17911</summary>17912<remarks>17913Creates an SDL_Surface from the provided pixel data.17914<p>17915The data stored in pixels is assumed to be of the depth specified17916in the parameter list. The pixel data is not copied into the SDL_Surface17917structure so it should not be freed until the surface has been freed17918with a called to <see cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)"/>. pitch is the length of each scanline17919in bytes. </p>17920<p>17921See <see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> for a more detailed description of the other17922parameters.</p>17923<p>Binds to C-function call in SDL_video.h:17924<code>SDL_Surface *SDL_CreateRGBSurfaceFrom(void *pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)</code>17925</p>17926</remarks>17927<param name="pixels"></param>17928<param name="width"></param>17929<param name="height"></param>17930<param name="depth"></param>17931<param name="pitch">length of each scanline in bytes.</param>17932<param name="Rmask"></param>17933<param name="Gmask"></param>17934<param name="Bmask"></param>17935<param name="Amask"></param>17936<returns>Returns the created surface, or NULL upon error.17937</returns>17938<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>17939<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)"/>17940</member>17941<member name="M:Tao.Sdl.Sdl.SDL_FreeSurface(System.IntPtr)">17942<summary>17943Frees (deletes) a SDL_Surface17944</summary>17945<remarks>17946Frees the resources used by a previously created <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>.17947If the surface was created using <see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>17948then the pixel data is not freed.17949<p>Binds to C-function call in SDL_video.h:17950<code>void SDL_FreeSurface(SDL_Surface *surface)</code>17951</p>17952</remarks>17953<param name="surface"></param>17954<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurface</seealso>17955<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurfaceFrom(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurfaceFrom</seealso>17956</member>17957<member name="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">17958<summary>17959Lock a surface for directly access.17960</summary>17961<remarks>17962SDL_LockSurface sets up a surface for directly accessing the pixels.17963Between calls to SDL_LockSurface and SDL_UnlockSurface, you can write17964to and read from <i>surface.pixels</i>, using the pixel format stored in17965<i>surface.format</i>. Once you are done accessing the surface,17966you should use SDL_UnlockSurface to release it.17967<p>Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates17968to 0, then you can read and write to the surface at any time, and the17969pixel format of the surface will not change. </p>17970<p>No operating system or library calls should be made between17971lock/unlock pairs, as critical system locks may be held during this time.17972</p>17973<p>It should be noted, that since SDL 1.1.8 surface locks are recursive.17974This means that you can lock a surface multiple times, but each lock17975must have a match unlock. </p>17976<code>17977.17978SDL_LockSurface( surface );17979.17980/* Surface is locked */17981/* Direct pixel access on surface here */17982.17983SDL_LockSurface( surface );17984.17985/* More direct pixel access on surface */17986.17987SDL_UnlockSurface( surface );17988/* Surface is still locked */17989/* Note: Is versions < 1.1.8, the surface would have been */17990/* no longer locked at this stage */17991.17992SDL_UnlockSurface( surface );17993/* Surface is now unlocked */17994.17995</code>17996<p>Binds to C-function call in SDL_video.h:17997<code>int SDL_LockSurface(SDL_Surface *surface)</code>17998</p>17999</remarks>18000<param name="surface"></param>18001<returns>SDL_LockSurface returns 0, or -1 if the surface couldn't be locked.18002</returns>18003<seealso cref="M:Tao.Sdl.Sdl.SDL_UnlockSurface(System.IntPtr)">SDL_UnlockSurface</seealso>18004</member>18005<member name="M:Tao.Sdl.Sdl.SDL_UnlockSurface(System.IntPtr)">18006<summary>18007Unlocks a previously locked surface.18008</summary>18009<remarks>18010Surfaces that were previously locked using <see cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)"/>18011must be unlocked with SDL_UnlockSurface. Surfaces should be18012unlocked as soon as possible.18013<p>It should be noted that since 1.1.8, surface18014locks are recursive. See <see cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)"/>.</p>18015<p>Binds to C-function call in SDL_video.h:18016<code>void SDL_UnlockSurface(SDL_Surface *surface)</code>18017</p>18018</remarks>18019<param name="surface"></param>18020<returns></returns>18021<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)">SDL_LockSurface</seealso>18022</member>18023<member name="M:Tao.Sdl.Sdl.SDL_LoadBMP_RW(System.IntPtr,System.Int32)">18024<summary>18025Load a surface from a seekable SDL data source (memory or file.)18026</summary>18027<remarks>18028If 'freesrc' is non-zero, the source will be closed after being read.18029Returns the new surface, or NULL if there was an error.18030The new surface should be freed with SDL_FreeSurface().18031<p>Binds to C-function call in SDL_video.h:18032<code>SDL_Surface * SDLCALL SDL_LoadBMP_RW(SDL_RWops *src, int freesrc)18033</code></p>18034</remarks>18035<param name="src">IntPtr to SDL_Surface</param>18036<param name="freesrc"></param>18037<returns></returns>18038</member>18039<member name="M:Tao.Sdl.Sdl.SDL_LoadBMP(System.String)">18040<summary>18041Load a Windows BMP file into an SDL_Surface.18042</summary>18043<remarks>18044Loads a surface from a named Windows BMP file.18045<p>Binds to C-function call in SDL_video.h:18046<code>18047SDL_Surface * SDL_LoadBMP(const char *file)18048#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1)18049</code></p>18050</remarks>18051<param name="file"></param>18052<returns>Returns the new surface, or NULL if there was an error.</returns>18053<seealso cref="M:Tao.Sdl.Sdl.SDL_SaveBMP(System.IntPtr,System.String)">SDL_SaveBMP</seealso>18054</member>18055<member name="M:Tao.Sdl.Sdl.SDL_SaveBMP_RW(System.IntPtr,System.IntPtr,System.Int32)">18056<summary>18057Save a surface to a seekable SDL data source (memory or file.)18058</summary>18059<remarks>If 'freedst' is non-zero, the source will be closed after18060being written.18061<p>Binds to C-function call in SDL_video.h:18062<code>18063int SDLCALL SDL_SaveBMP_RW (SDL_Surface *surface, SDL_RWops *dst, int freedst)18064</code>18065</p>18066</remarks>18067<param name="surface"></param>18068<param name="dst"></param>18069<param name="freedst"></param>18070<returns>Returns 0 if successful or -1 if there was an error.</returns>18071</member>18072<member name="M:Tao.Sdl.Sdl.SDL_SaveBMP(System.IntPtr,System.String)">18073<summary>18074Save an SDL_Surface as a Windows BMP file.18075</summary>18076<remarks>18077Saves the SDL_Surface surface as a Windows BMP file named file.18078<p>Binds to C-function call in SDL_video.h:18079<code>18080int SDL_SaveBMP(SDL_Surface *surface, const char *file);18081#define SDL_SaveBMP(surface, file) SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1)18082</code></p>18083</remarks>18084<param name="file"></param>18085<param name="surface"></param>18086<returns>Returns 0 if successful or -1 if there was an error.</returns>18087<seealso cref="M:Tao.Sdl.Sdl.SDL_SaveBMP(System.IntPtr,System.String)">SDL_LoadBMP</seealso>18088</member>18089<member name="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)">18090<summary>18091Sets the color key (transparent pixel) in a blittable surface and RLE acceleration.18092</summary>18093<remarks>18094Sets the color key (transparent pixel) in a blittable surface and18095enables or disables RLE blit acceleration.18096<p>RLE acceleration can substantially speed up blitting of images18097with large horizontal runs of transparent pixels (i.e., pixels that18098match the key value). The key must be of the same pixel format as18099the surface, <see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/> is often useful for obtaining an acceptable18100value.</p>18101<p>If flag is SDL_SRCCOLORKEY then key is the transparent pixel value18102in the source image of a blit.</p>18103<p>If flag is OR'd with SDL_RLEACCEL then the surface will be draw18104using RLE acceleration when drawn with <see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>. The surface18105will actually be encoded for RLE acceleration the first time18106<see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/> or <see cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)"/> is called on the surface.</p>18107<p>If flag is 0, this function clears any current color key.</p>18108<p>Binds to C-function call in SDL_video.h:18109<code>int SDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);18110</code></p>18111</remarks>18112<param name="surface"></param>18113<param name="flag"></param>18114<param name="key"></param>18115<returns>18116This function returns 0, or -1 if there was an error.18117</returns>18118<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18119<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)">SDL_DisplayFormat</seealso>18120<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>18121<seealso cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)">SDL_SetAlpha</seealso>18122</member>18123<member name="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.UInt32,System.UInt32)">18124<summary>18125Sets the color key (transparent pixel) in a blittable surface and RLE acceleration.18126</summary>18127<remarks>18128Sets the color key (transparent pixel) in a blittable surface and18129enables or disables RLE blit acceleration.18130<p>RLE acceleration can substantially speed up blitting of images18131with large horizontal runs of transparent pixels (i.e., pixels that18132match the key value). The key must be of the same pixel format as18133the surface, <see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/> is often useful for obtaining an acceptable18134value.</p>18135<p>If flag is SDL_SRCCOLORKEY then key is the transparent pixel value18136in the source image of a blit.</p>18137<p>If flag is OR'd with SDL_RLEACCEL then the surface will be draw18138using RLE acceleration when drawn with <see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>. The surface18139will actually be encoded for RLE acceleration the first time18140<see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/> or <see cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)"/> is called on the surface.</p>18141<p>If flag is 0, this function clears any current color key.</p>18142<p>Binds to C-function call in SDL_video.h:18143<code>int SDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);18144</code></p>18145</remarks>18146<param name="surface"></param>18147<param name="flag"></param>18148<param name="key"></param>18149<returns>18150This function returns 0, or -1 if there was an error.18151</returns>18152<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18153<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)">SDL_DisplayFormat</seealso>18154<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)">SDL_MapRGB</seealso>18155<seealso cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)">SDL_SetAlpha</seealso>18156</member>18157<member name="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)">18158<summary>18159Adjust the alpha properties of a surface.18160</summary>18161<remarks>18162SDL_SetAlpha is used for setting the per-surface alpha value and/or18163enabling and disabling alpha blending.18164<p>The surface parameter specifies which surface whose alpha18165attributes you wish to adjust. flags is used to specify whether18166alpha blending should be used (SDL_SRCALPHA) and whether the18167surface should use RLE acceleration for blitting (SDL_RLEACCEL).18168flags can be an OR'd combination of these two options, one of18169these options or 0. If SDL_SRCALPHA is not passed as a flag then18170all alpha information is ignored when blitting the surface. The18171alpha parameter is the per-surface alpha value; a surface18172need not have an alpha channel to use per-surface alpha and18173blitting can still be accelerated with SDL_RLEACCEL.</p>18174<p>Note: The per-surface alpha value of 128 is considered a18175special case and is optimised, so it's much faster than other18176per-surface values.</p>18177Alpha effects surface blitting in the following ways:18178<list type="table">18179<item>18180<term>RGBA->RGB with SDL_SRCALPHA</term>18181<description>The source is alpha-blended with18182the destination, using the alpha channel.18183SDL_SRCCOLORKEY and the per-surface alpha18184are ignored.</description>18185</item>18186<item>18187<term>RGBA->RGB without SDL_SRCALPHA</term>18188<description>The RGB data is copied from the source.18189The source alpha channel and the per-surface18190alpha value are ignored.</description>18191</item>18192<item>18193<term>RGB->RGBA with SDL_SRCALPHA</term>18194<description>The source is alpha-blended with the18195destination using the per-surface alpha value.18196If SDL_SRCCOLORKEY is set, only the pixels not18197matching the colorkey value are copied. The alpha18198channel of the copied pixels is set to opaque.18199</description>18200</item>18201<item>18202<term>RGB->RGBA without SDL_SRCALPHA</term>18203<description>The RGB data is copied from the18204source and the alpha value of the copied pixels18205is set to opaque. If SDL_SRCCOLORKEY is set,18206only the pixels not matching the colorkey value18207are copied.</description>18208</item>18209<item>18210<term>RGBA->RGBA with SDL_SRCALPHA</term>18211<description>The source is alpha-blended with18212the destination using the source alpha channel.18213The alpha channel in the destination surface18214is left untouched. SDL_SRCCOLORKEY is ignored.18215</description>18216</item>18217<item>18218<term>RGBA->RGBA without SDL_SRCALPHA</term>18219<description>The RGBA data is copied to the destination18220surface. If SDL_SRCCOLORKEY is set, only the pixels18221not matching the colorkey value are copied.18222</description>18223</item>18224<item>18225<term>RGB->RGB with SDL_SRCALPHA</term>18226<description>The source is alpha-blended with the18227destination using the per-surface alpha value.18228If SDL_SRCCOLORKEY is set, only the pixels not18229matching the colorkey value are copied.18230</description>18231</item>18232<item>18233<term>RGB->RGB without SDL_SRCALPHA</term>18234<description>The RGB data is copied from the source.18235If SDL_SRCCOLORKEY is set, only the pixels not18236matching the colorkey value are copied.18237</description>18238</item>18239</list>18240<p>Note: Note that RGBA->RGBA blits (with SDL_SRCALPHA set) keep18241the alpha of the destination surface. This means that you cannot18242compose two arbitrary RGBA surfaces this way and get the result18243you would expect from "overlaying" them; the destination alpha18244will work as a mask.</p>18245<p>Also note that per-pixel and per-surface alpha cannot be18246combined; the per-pixel alpha is always used if available.</p>18247<p>Binds to C-function call in SDL_video.h:18248<code>int SDL_SetAlpha(SDL_Surface *surface, Uint32 flag, Uint8 alpha);18249</code></p>18250</remarks>18251<param name="surface"></param>18252<param name="flag"></param>18253<param name="alpha"></param>18254<returns>This function returns 0, or -1 if there was an error.18255</returns>18256<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>18257<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>18258<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormatAlpha(System.IntPtr)">SDL_DisplayFormatAlpha</seealso>18259<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18260</member>18261<member name="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.UInt32,System.Byte)">18262<summary>18263Adjust the alpha properties of a surface.18264</summary>18265<remarks>18266SDL_SetAlpha is used for setting the per-surface alpha value and/or18267enabling and disabling alpha blending.18268<p>The surface parameter specifies which surface whose alpha18269attributes you wish to adjust. flags is used to specify whether18270alpha blending should be used (SDL_SRCALPHA) and whether the18271surface should use RLE acceleration for blitting (SDL_RLEACCEL).18272flags can be an OR'd combination of these two options, one of18273these options or 0. If SDL_SRCALPHA is not passed as a flag then18274all alpha information is ignored when blitting the surface. The18275alpha parameter is the per-surface alpha value; a surface18276need not have an alpha channel to use per-surface alpha and18277blitting can still be accelerated with SDL_RLEACCEL.</p>18278<p>Note: The per-surface alpha value of 128 is considered a18279special case and is optimised, so it's much faster than other18280per-surface values.</p>18281Alpha effects surface blitting in the following ways:18282<list type="table">18283<item>18284<term>RGBA->RGB with SDL_SRCALPHA</term>18285<description>The source is alpha-blended with18286the destination, using the alpha channel.18287SDL_SRCCOLORKEY and the per-surface alpha18288are ignored.</description>18289</item>18290<item>18291<term>RGBA->RGB without SDL_SRCALPHA</term>18292<description>The RGB data is copied from the source.18293The source alpha channel and the per-surface18294alpha value are ignored.</description>18295</item>18296<item>18297<term>RGB->RGBA with SDL_SRCALPHA</term>18298<description>The source is alpha-blended with the18299destination using the per-surface alpha value.18300If SDL_SRCCOLORKEY is set, only the pixels not18301matching the colorkey value are copied. The alpha18302channel of the copied pixels is set to opaque.18303</description>18304</item>18305<item>18306<term>RGB->RGBA without SDL_SRCALPHA</term>18307<description>The RGB data is copied from the18308source and the alpha value of the copied pixels18309is set to opaque. If SDL_SRCCOLORKEY is set,18310only the pixels not matching the colorkey value18311are copied.</description>18312</item>18313<item>18314<term>RGBA->RGBA with SDL_SRCALPHA</term>18315<description>The source is alpha-blended with18316the destination using the source alpha channel.18317The alpha channel in the destination surface18318is left untouched. SDL_SRCCOLORKEY is ignored.18319</description>18320</item>18321<item>18322<term>RGBA->RGBA without SDL_SRCALPHA</term>18323<description>The RGBA data is copied to the destination18324surface. If SDL_SRCCOLORKEY is set, only the pixels18325not matching the colorkey value are copied.18326</description>18327</item>18328<item>18329<term>RGB->RGB with SDL_SRCALPHA</term>18330<description>The source is alpha-blended with the18331destination using the per-surface alpha value.18332If SDL_SRCCOLORKEY is set, only the pixels not18333matching the colorkey value are copied.18334</description>18335</item>18336<item>18337<term>RGB->RGB without SDL_SRCALPHA</term>18338<description>The RGB data is copied from the source.18339If SDL_SRCCOLORKEY is set, only the pixels not18340matching the colorkey value are copied.18341</description>18342</item>18343</list>18344<p>Note: Note that RGBA->RGBA blits (with SDL_SRCALPHA set) keep18345the alpha of the destination surface. This means that you cannot18346compose two arbitrary RGBA surfaces this way and get the result18347you would expect from "overlaying" them; the destination alpha18348will work as a mask.</p>18349<p>Also note that per-pixel and per-surface alpha cannot be18350combined; the per-pixel alpha is always used if available.</p>18351<p>Binds to C-function call in SDL_video.h:18352<code>int SDL_SetAlpha(SDL_Surface *surface, Uint32 flag, Uint8 alpha);18353</code></p>18354</remarks>18355<param name="surface"></param>18356<param name="flag"></param>18357<param name="alpha"></param>18358<returns>This function returns 0, or -1 if there was an error.18359</returns>18360<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)">SDL_MapRGBA</seealso>18361<seealso cref="M:Tao.Sdl.Sdl.SDL_GetRGBA(System.Int32,System.IntPtr,System.Byte@,System.Byte@,System.Byte@,System.Byte@)">SDL_GetRGBA</seealso>18362<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormatAlpha(System.IntPtr)">SDL_DisplayFormatAlpha</seealso>18363<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18364</member>18365<member name="M:Tao.Sdl.Sdl.SDL_SetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">18366<summary>18367Sets the clipping rectangle for a surface.18368</summary>18369<remarks>18370Sets the clipping rectangle for a surface. When this surface18371is the destination of a blit, only the area within the clip18372rectangle will be drawn into.18373<p>The rectangle pointed to by rect will be clipped to the18374edges of the surface so that the clip rectangle for a surface18375can never fall outside the edges of the surface.</p>18376<p>If rect is NULL the clipping rectangle will be set to the18377full size of the surface.</p>18378<p>Binds to C-function call in SDL_video.h:18379<code>18380void SDL_SetClipRect(SDL_Surface *surface, SDL_Rect *rect)18381</code></p>18382</remarks>18383<param name="surface">IntPtr to SDL_Surface</param>18384<param name="rect">SDL_Rect</param>18385<seealso cref="M:Tao.Sdl.Sdl.SDL_GetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_GetClipRect</seealso>18386<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18387<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>18388</member>18389<member name="M:Tao.Sdl.Sdl.SDL_GetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">18390<summary>18391Gets the clipping rectangle for a surface.18392</summary>18393<remarks>18394Gets the clipping rectangle for a surface.18395When this surface is the destination of a blit,18396only the area within the clip rectangle is drawn into.18397<p>The rectangle pointed to by rect will be filled with the18398clipping rectangle of the surface.</p>18399<p>Binds to C-function call in SDL_video.h:18400<code>18401void SDL_GetClipRect(SDL_Surface *surface, SDL_Rect *rect)18402</code></p>18403</remarks>18404<param name="surface">IntPtr to SDL_Surface</param>18405<param name="rect">SDL_Rect</param>18406<seealso cref="M:Tao.Sdl.Sdl.SDL_SetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_SetClipRect</seealso>18407<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">SDL_BlitSurface</seealso>18408<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>18409</member>18410<member name="M:Tao.Sdl.Sdl.SDL_ConvertSurface(System.IntPtr,System.IntPtr,System.Int32)">18411<summary>18412Converts a surface to the same format as another surface.18413</summary>18414<remarks>18415Creates a new surface of the specified format,18416and then copies and maps the given surface to it.18417If this function fails, it returns NULL.18418<p>The flags parameter is passed to18419<see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> and has those semantics.</p>18420<p>This function is used internally by <see cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)"/>.</p>18421<p>This function can only be called after SDL_Init.</p>18422<p>Binds to C-function call in SDL_video.h:18423<code>18424SDL_Surface *SDL_ConvertSurface(SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags)18425</code></p>18426</remarks>18427<param name="src">IntPtr to SDL_Surface</param>18428<param name="fmt">IntPTr to SDL_PixelFormat</param>18429<param name="flags"></param>18430<returns>18431Returns either a pointer to the new surface, or NULL on error.18432</returns>18433<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurface</seealso>18434<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)">SDL_DisplayFormat</seealso>18435<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>18436<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>18437</member>18438<member name="M:Tao.Sdl.Sdl.SDL_ConvertSurface(System.IntPtr,System.IntPtr,System.UInt32)">18439<summary>18440Converts a surface to the same format as another surface.18441</summary>18442<remarks>18443Creates a new surface of the specified format,18444and then copies and maps the given surface to it.18445If this function fails, it returns NULL.18446<p>The flags parameter is passed to18447<see cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/> and has those semantics.</p>18448<p>This function is used internally by <see cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)"/>.</p>18449<p>This function can only be called after SDL_Init.</p>18450<p>Binds to C-function call in SDL_video.h:18451<code>18452SDL_Surface *SDL_ConvertSurface(SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags)18453</code></p>18454</remarks>18455<param name="src">IntPtr to SDL_Surface</param>18456<param name="fmt">IntPTr to SDL_PixelFormat</param>18457<param name="flags"></param>18458<returns>18459Returns either a pointer to the new surface, or NULL on error.18460</returns>18461<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateRGBSurface(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">SDL_CreateRGBSurface</seealso>18462<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)">SDL_DisplayFormat</seealso>18463<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat">SDL_PixelFormat</seealso>18464<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface">SDL_Surface</seealso>18465</member>18466<member name="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">18467<summary>18468This performs a fast blit from the source surface to the18469destination surface.18470</summary>18471<remarks>18472This performs a fast blit from the source surface18473to the destination surface.18474<p>The width and height in srcrect determine the18475size of the copied rectangle. Only the position is used18476in the dstrect (the width and height are ignored).</p>18477<p>If srcrect is NULL, the entire surface is copied.18478If dstrect is NULL, then the destination position18479(upper left corner) is (0, 0).</p>18480<p>The final blit rectangle is saved in dstrect after all18481clipping is performed (srcrect is not modified).</p>18482<p>The blit function should not be called on a locked surface.</p>18483<p> The results of blitting operations vary greatly depending18484on whether SDL_SRCAPLHA is set or not. See SDL_SetAlpha for an18485explaination of how this affects your results. Colorkeying and18486alpha attributes also interact with surface blitting, as the18487following pseudo-code should hopefully explain. </p>18488<code>if (source surface has SDL_SRCALPHA set)18489{18490if (source surface has alpha channel (that is, format->Amask != 0))18491blit using per-pixel alpha, ignoring any colour key18492else {18493if (source surface has SDL_SRCCOLORKEY set)18494blit using the colour key AND the per-surface alpha value18495else18496blit using the per-surface alpha value18497}18498}18499else18500{18501if (source surface has SDL_SRCCOLORKEY set)18502blit using the colour key18503else18504ordinary opaque rectangular blit18505}</code>18506<p>Binds to C-function call in SDL_video.h:18507<code>int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);18508</code></p>18509</remarks>18510<param name="src">IntPtr to SDL_Surface</param>18511<param name="srcrect">IntPtr to SDL_Rect</param>18512<param name="dst">IntPtr to SDL_Surface</param>18513<param name="dstrect">IntPtr to SDL_Rect</param>18514<returns>If the blit is successful, it returns 0, otherwise it18515returns -1.18516<p>If either of the surfaces were in video memory,18517and the blit returns -2, the video memory was lost,18518so it should be reloaded with artwork and re-blitted: </p>1851918520<code>while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 )18521{18522while ( SDL_LockSurface(image)) < 0 )18523SDL_Delay(10);18524-- Write image pixels to image->pixels --18525SDL_UnlockSurface(image);18526}18527</code>18528<p>This happens under DirectX 5.0 when the system switches away from your18529fullscreen application. Locking the surface will also fail until you18530have access to the video memory again.</p>18531</returns>18532<seealso cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)"/>18533<seealso cref="M:Tao.Sdl.Sdl.SDL_FillRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.Int32)"/>18534<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface"/>18535<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect"/>18536</member>18537<member name="M:Tao.Sdl.Sdl.SDL_FillRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.Int32)">18538<summary>18539This function performs a fast fill of the given rectangle with some color.18540</summary>18541<remarks>18542This function performs a fast fill of the given rectangle with color.18543If dstrect is NULL, the whole surface will be filled with color.18544<p>The color should be a pixel of the format used by the surface,18545and can be generated by the <see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/> or18546<see cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)"/> functions.18547If the color value contains an alpha value then the destination18548is simply "filled" with that alpha information, no blending18549takes place.</p>18550<p>If there is a clip rectangle set on the destination (set via18551<see cref="M:Tao.Sdl.Sdl.SDL_SetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>) then this function will clip based on the18552intersection of the clip rectangle and the dstrect rectangle18553and the dstrect rectangle will be modified to represent the18554area actually filled.</p>18555<p>Binds to C-function call in SDL_video.h:18556<code>18557int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);18558</code>18559</p>18560</remarks>18561<param name="surface">IntPtr to SDL_Surface</param>18562<param name="rect">IntPtr to SDL_Rect</param>18563<param name="color"></param>18564<returns>18565This function returns 0 on success, or -1 on error.18566</returns>18567<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/>18568<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)"/>18569<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>18570<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect"/>18571</member>18572<member name="M:Tao.Sdl.Sdl.SDL_FillRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.UInt32)">18573<summary>18574This function performs a fast fill of the given rectangle with some color.18575</summary>18576<remarks>18577This function performs a fast fill of the given rectangle with color.18578If dstrect is NULL, the whole surface will be filled with color.18579<p>The color should be a pixel of the format used by the surface,18580and can be generated by the <see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/> or18581<see cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)"/> functions.18582If the color value contains an alpha value then the destination18583is simply "filled" with that alpha information, no blending18584takes place.</p>18585<p>If there is a clip rectangle set on the destination (set via18586<see cref="M:Tao.Sdl.Sdl.SDL_SetClipRect(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>) then this function will clip based on the18587intersection of the clip rectangle and the dstrect rectangle18588and the dstrect rectangle will be modified to represent the18589area actually filled.</p>18590<p>Binds to C-function call in SDL_video.h:18591<code>18592int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);18593</code>18594</p>18595</remarks>18596<param name="surface">IntPtr to SDL_Surface</param>18597<param name="rect">IntPtr to SDL_Rect</param>18598<param name="color"></param>18599<returns>18600This function returns 0 on success, or -1 on error.18601</returns>18602<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/>18603<seealso cref="M:Tao.Sdl.Sdl.SDL_MapRGBA(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte)"/>18604<seealso cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>18605<seealso cref="T:Tao.Sdl.Sdl.SDL_Rect"/>18606</member>18607<member name="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)">18608<summary>18609Convert a surface to the display format.18610</summary>18611<remarks>18612This function takes a surface and copies it to a new surface of the18613pixel format and colors of the video framebuffer, suitable for fast18614blitting onto the display surface. It calls18615<see cref="M:Tao.Sdl.Sdl.SDL_ConvertSurface(System.IntPtr,System.IntPtr,System.Int32)"/>.18616<p>If you want to take advantage of hardware colorkey or alpha blit18617acceleration, you should set the colorkey and alpha value before18618calling this function.</p>18619<p>If you want an alpha channel, see18620<see cref="M:Tao.Sdl.Sdl.SDL_DisplayFormatAlpha(System.IntPtr)"/>.</p>18621<p>Binds to C-function call in SDL_video.h:18622<code>SDL_Surface *SDL_DisplayFormat(SDL_Surface *surface)18623</code>18624</p>18625</remarks>18626<param name="surface">IntPtr to SDL_Surface</param>18627<returns>IntPtr to SDL_Surface.18628If the conversion fails or runs out of memory,18629it returns NULL</returns>18630</member>18631<member name="M:Tao.Sdl.Sdl.SDL_DisplayFormatAlpha(System.IntPtr)">18632<summary>18633Convert a surface to the display format.18634</summary>18635<remarks>18636This function takes a surface and copies it to a new surface of the18637pixel format and colors of the video framebuffer plus an alpha channel,18638suitable for fast blitting onto the display surface.18639It calls <see cref="M:Tao.Sdl.Sdl.SDL_ConvertSurface(System.IntPtr,System.IntPtr,System.Int32)"/>.18640<p>If you want to take advantage of hardware colorkey or alpha blit18641acceleration, you should set the colorkey and alpha value before18642calling this function.</p>18643<p>This function can be used to convert a colourkey to an alpha18644channel, if the SDL_SRCCOLORKEY flag is set on the surface. The18645generated surface will then be transparent (alpha=0) where the18646pixels match the colourkey, and opaque (alpha=255) elsewhere.</p>18647<p>Binds to C-function call in SDL_video.h:18648<code>SDL_Surface *SDL_DisplayFormatAlpha(SDL_Surface *surface)18649</code></p></remarks>18650<param name="surface"></param>18651<returns>IntPtr to SDL_Surface.18652If the conversion fails or runs out of memory,18653it returns NULL</returns>18654<seealso cref="M:Tao.Sdl.Sdl.SDL_ConvertSurface(System.IntPtr,System.IntPtr,System.Int32)"/>18655<seealso cref="M:Tao.Sdl.Sdl.SDL_SetAlpha(System.IntPtr,System.Int32,System.Byte)"/>18656<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColorKey(System.IntPtr,System.Int32,System.Int32)"/>18657<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayFormat(System.IntPtr)"/>18658<seealso cref="T:Tao.Sdl.Sdl.SDL_Surface"/>18659</member>18660<member name="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)">18661<summary>18662Create a YUV video overlay.18663</summary>18664<remarks>18665SDL_CreateYUVOverlay creates a YUV overlay of the specified width,18666height and format (see <see cref="T:Tao.Sdl.Sdl.SDL_Overlay"/> for a list of18667available formats),18668for the provided display. A <see cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18669structure is returned.18670<p>The term 'overlay' is a misnomer since, unless the overlay is18671created in hardware, the contents for the display surface underneath18672the area where the overlay is shown will be overwritten when the18673overlay is displayed.</p>18674<p>Binds to C-function call in SDL_video.h:18675<code>SDL_Overlay *SDL_CreateYUVOverlay(int width, int height, Uint32 format, SDL_Surface *display)18676</code></p></remarks>18677<param name="width"></param>18678<param name="height"></param>18679<param name="format"></param>18680<param name="display">IntPtr to SDL_Surface</param>18681<returns>IntPtr to SDL_Overlay</returns>18682<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18683<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayYUVOverlay(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>18684<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeYUVOverlay(System.IntPtr)"/>18685</member>18686<member name="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.UInt32,System.IntPtr)">18687<summary>18688Create a YUV video overlay.18689</summary>18690<remarks>18691SDL_CreateYUVOverlay creates a YUV overlay of the specified width,18692height and format (see <see cref="T:Tao.Sdl.Sdl.SDL_Overlay"/> for a list of18693available formats),18694for the provided display. A <see cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18695structure is returned.18696<p>The term 'overlay' is a misnomer since, unless the overlay is18697created in hardware, the contents for the display surface underneath18698the area where the overlay is shown will be overwritten when the18699overlay is displayed.</p>18700<p>Binds to C-function call in SDL_video.h:18701<code>SDL_Overlay *SDL_CreateYUVOverlay(int width, int height, Uint32 format, SDL_Surface *display)18702</code></p></remarks>18703<param name="width"></param>18704<param name="height"></param>18705<param name="format"></param>18706<param name="display">IntPtr to SDL_Surface</param>18707<returns>IntPtr to SDL_Overlay</returns>18708<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18709<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayYUVOverlay(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>18710<seealso cref="M:Tao.Sdl.Sdl.SDL_FreeYUVOverlay(System.IntPtr)"/>18711</member>18712<member name="M:Tao.Sdl.Sdl.SDL_LockYUVOverlay(System.IntPtr)">18713<summary>18714Lock an overlay18715</summary>18716<remarks>18717Much the same as <see cref="M:Tao.Sdl.Sdl.SDL_LockSurface(System.IntPtr)"/>,18718SDL_LockYUVOverlay locks the overlay for direct access to pixel data.18719<p>Binds to C-function call in SDL_video.h:18720<code>int SDL_LockYUVOverlay(SDL_Overlay *overlay)18721</code></p></remarks>18722<param name="overlay"></param>18723<returns>Returns 0 on success, or -1 on an error</returns>18724<seealso cref="M:Tao.Sdl.Sdl.SDL_UnlockYUVOverlay(System.IntPtr)"/>18725<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>18726<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18727</member>18728<member name="M:Tao.Sdl.Sdl.SDL_UnlockYUVOverlay(System.IntPtr)">18729<summary>18730Unlock an overlay.18731</summary>18732<remarks>18733The opposite to <see cref="M:Tao.Sdl.Sdl.SDL_LockYUVOverlay(System.IntPtr)"/>.18734Unlocks a previously locked overlay.18735An overlay must be unlocked before it can be displayed.18736<p>Binds to C-function call in SDL_video.h:18737<code>void SDLCALL SDL_UnlockYUVOverlay(SDL_Overlay *overlay)18738</code></p></remarks>18739<param name="overlay">IntPtr to SDL_Overlay</param>18740<seealso cref="M:Tao.Sdl.Sdl.SDL_UnlockYUVOverlay(System.IntPtr)"/>18741<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>18742<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18743</member>18744<member name="M:Tao.Sdl.Sdl.SDL_DisplayYUVOverlay(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)">18745<summary>18746Blit the overlay to the display.18747</summary>18748<remarks>18749Blit the overlay to the surface specified when it was <see cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)">created</see>.18750The <see cref="T:Tao.Sdl.Sdl.SDL_Rect"/> structure, dstrect, specifies the position and size of the18751destination. If the dstrect is a larger or smaller than the overlay then18752the overlay will be scaled, this is optimized for 2x scaling.18753<p>Binds to C-function call in SDL_video.h:18754<code>SDL_DisplayYUVOverlay(SDL_Overlay *overlay, SDL_Rect *dstrect)18755</code></p></remarks>18756<param name="overlay">IntPtr to SDL_Overlay</param>18757<param name="dstrect">SDL_Rect</param>18758<returns>Returns 0 on success.</returns>18759<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18760<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>18761</member>18762<member name="M:Tao.Sdl.Sdl.SDL_FreeYUVOverlay(System.IntPtr)">18763<summary>18764Free a YUV video overlay.18765</summary>18766<remarks>18767Frees an <see cref="T:Tao.Sdl.Sdl.SDL_Overlay">overlay</see> created by <see cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>18768<p>Binds to C-function call in SDL_video.h:18769<code>SDL_FreeYUVOverlay(SDL_Overlay *overlay)18770</code></p></remarks>18771<param name="overlay"></param>18772<seealso cref="T:Tao.Sdl.Sdl.SDL_Overlay"/>18773<seealso cref="M:Tao.Sdl.Sdl.SDL_DisplayYUVOverlay(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>18774<seealso cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>18775SDL_Overlay, SDL_DisplayYUVOverlay, SDL_FreeYUVOverlay18776</member>18777<member name="M:Tao.Sdl.Sdl.SDL_GL_LoadLibrary(System.String)">18778<summary>18779Specify an OpenGL library.18780</summary>18781<remarks>18782If you wish, you may load the OpenGL library at runtime, this must18783be done before <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> is called.18784The path of the GL18785library is passed to SDL_GL_LoadLibrary and it returns 0 on18786success, or -1 on18787an error. You must then use <see cref="M:Tao.Sdl.Sdl.SDL_GL_GetProcAddress(System.String)"/>18788to retrieve18789function pointers to GL functions.18790<p>Binds to C-function call in SDL_video.h:18791<code>int SDL_GL_LoadLibrary(const char *path);18792</code></p></remarks>18793<param name="path"></param>18794<returns>Returns 0 on success, or -1 on an error.</returns>18795<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetProcAddress(System.String)"/>18796</member>18797<member name="M:Tao.Sdl.Sdl.SDL_GL_GetProcAddress(System.String)">18798<summary>18799Get the address of a GL function18800</summary>18801<remarks>18802Returns the address of the GL function proc, or NULL if the18803function is not found. If the GL library is loaded at runtime,18804with SDL_GL_LoadLibrary, then all GL functions must be retrieved18805this way. Usually this is used to retrieve function pointers18806to OpenGL extensions.18807<p>Binds to C-function call in SDL_video.h:18808<code>void *SDL_GL_GetProcAddress(const char* proc);18809</code></p></remarks>18810<example>18811<code>18812typedef void (*GL_ActiveTextureARB_Func)(unsigned int);18813GL_ActiveTextureARB_Func glActiveTextureARB_ptr = 0;18814int has_multitexture=1;18815.18816.18817.18818/* Get function pointer */18819glActiveTextureARB_ptr=(GL_ActiveTextureARB_Func) SDL_GL_GetProcAddress("glActiveTextureARB");1882018821/* Check for a valid function ptr */18822if(!glActiveTextureARB_ptr)18823{18824fprintf(stderr, "Multitexture Extensions not present.\n");18825has_multitexture=0;18826}18827.18828.18829.18830.18831if(has_multitexture)18832{18833glActiveTextureARB_ptr(GL_TEXTURE0_ARB);18834.18835.18836}18837else18838{18839.18840.18841}18842</code>18843</example>18844<param name="proc"></param>18845<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_LoadLibrary(System.String)"/>18846<returns>Returns the address of the GL function proc, or NULL if the18847function is not found.</returns>18848</member>18849<member name="M:Tao.Sdl.Sdl.SDL_GL_SwapBuffers">18850<summary>18851Swap OpenGL framebuffers/Update Display18852</summary>18853<remarks>18854Swap the OpenGL buffers, if double-buffering is supported.18855<p>Binds to C-function call in SDL_video.h:18856<code>void SDL_GL_SwapBuffers(void )18857</code></p></remarks>18858<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>18859<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)"/>18860</member>18861<member name="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)">18862<summary>18863Set a special SDL/OpenGL attribute.18864</summary>18865<remarks>18866Sets the OpenGL attribute attr to value.18867The attributes you set don't18868take effect until after a call to <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>.18869You should use18870<see cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/> to check the values after a18871SDL_SetVideoMode call.18872<p>Binds to C-function call in SDL_video.h:18873<code>int SDL_GL_SetAttribute(SDL_GLattr attr, int value);18874</code></p></remarks>18875<param name="attr">SDL_GLattr enum</param>18876<param name="val"></param>18877<returns>Returns 0 on success, or -1 on error.</returns>18878<seealso cref="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)"/>18879</member>18880<member name="M:Tao.Sdl.Sdl.SDL_GL_GetAttribute(System.Int32,System.Int32@)">18881<summary>18882Get the value of a special SDL/OpenGL attribute18883</summary>18884<remarks>18885Places the value of the SDL/OpenGL18886attribute attr into value. This is18887useful after a call to <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> to check18888whether your attributes have been18889<see cref="M:Tao.Sdl.Sdl.SDL_GL_SetAttribute(System.Int32,System.Int32)">set</see> as you expected.18890<p>Binds to C-function call in SDL_video.h:18891<code>int SDL_GL_GetAttribute(SDLGLattr attr, int *value)18892</code></p>18893</remarks>18894<param name="attr">SDL_GLattr enum</param>18895<param name="val"></param>18896<returns>Returns 0 on success, or -1 on an error.</returns>18897</member>18898<member name="M:Tao.Sdl.Sdl.SDL_WM_SetCaption(System.String,System.String)">18899<summary>18900Sets the title and icon text of the display window18901</summary>18902<remarks>18903Sets the title-bar and icon name of the display window.18904<p>Binds to C-function call in SDL_video.h:18905<code>extern DECLSPEC void SDLCALL SDL_WM_SetCaption(const char *title, const char *icon)</code>18906</p>18907</remarks>18908<seealso cref="M:Tao.Sdl.Sdl.SDL_WM_GetCaption(System.String@,System.String@)">SDL_WM_GetCaption</seealso>18909<seealso cref="M:Tao.Sdl.Sdl.SDL_WM_SetIcon(System.IntPtr,System.Byte[])">SDL_WM_SetIcon</seealso>18910<param name="title"></param>18911<param name="icon"></param>18912</member>18913<member name="M:Tao.Sdl.Sdl.SDL_WM_GetCaption(System.String@,System.String@)">18914<summary>18915Gets the title and icon text of the display window18916</summary>18917<remarks>18918<p>Binds to C-function call in SDL_video.h:18919<code>extern DECLSPEC void SDLCALL SDL_WM_GetCaption(char **title, char **icon)</code>18920</p></remarks>18921<param name="title"></param>18922<param name="icon"></param>18923<seealso cref="M:Tao.Sdl.Sdl.SDL_WM_SetCaption(System.String,System.String)">SDL_WM_SetCaption</seealso>18924<seealso cref="M:Tao.Sdl.Sdl.SDL_WM_SetIcon(System.IntPtr,System.Byte[])">SDL_WM_SetIcon</seealso>18925</member>18926<member name="M:Tao.Sdl.Sdl.SDL_WM_SetIcon(System.IntPtr,System.Byte[])">18927<summary>18928Sets the icon for the display window.18929</summary>18930<remarks>18931Sets the icon for the display window. Win32 icons must be 32x32.18932<p>This function must be called before the first call to18933<see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>.</p>18934<p>The mask is a bitmask that describes the shape of the icon.18935If mask is NULL, then the shape is determined by the colorkey18936of icon, if any, or makes the icon rectangular (no transparency)18937otherwise.</p>18938<p>If mask is non-NULL, it points to a bitmap with bits set where18939the corresponding pixel should be visible. The format of the bitmap18940is as follows: Scanlines come in the usual top-down order. Each18941scanline consists of (width / 8) bytes, rounded up. The most18942significant bit of each byte represents the leftmost pixel.</p>18943<p>Binds to C-function call in SDL_video.h:18944<code>void SDL_WM_SetIcon(SDL_Surface *icon, Uint8 *mask);18945</code></p>18946</remarks>18947<example>18948<code>SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), NULL);18949</code></example>18950<param name="icon">Pointer to an SDL_Surface</param>18951<param name="mask"></param>18952<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>18953<seealso cref="M:Tao.Sdl.Sdl.SDL_WM_SetCaption(System.String,System.String)"/>18954</member>18955<member name="M:Tao.Sdl.Sdl.SDL_WM_IconifyWindow">18956<summary>Iconify/Minimise the window</summary>18957<remarks>18958This function iconifies/minimizes the window, and returns 1 if it succeeded.18959If the function succeeds, it generates an <see cref="F:Tao.Sdl.Sdl.SDL_APPACTIVE"/> loss event.18960<p>Binds to C-function call in SDL_video.h:18961<code>int SDL_WM_IconifyWindow(void)</code></p>18962</remarks>18963<returns>Returns 1 if it succeeded.18964This function is a noop and returns 0 in non-windowed environments.</returns>18965</member>18966<member name="M:Tao.Sdl.Sdl.SDL_WM_ToggleFullScreen(System.IntPtr)">18967<summary>18968Toggle fullscreen mode without changing the contents of the screen.18969</summary>18970<remarks>If the display surface does not require locking before accessing18971the pixel information, then the memory pointers will not change.18972<p>If this function was able to toggle fullscreen mode (change from18973running in a window to fullscreen, or vice-versa),18974it will return 1.18975If it is not implemented, or fails, it returns 0.</p>18976<p>The next call to SDL_SetVideoMode() will set the mode fullscreen18977attribute based on the flags parameter - if SDL_FULLSCREEN is not18978set, then the display will be windowed by default where supported.</p>18979<p>This is currently only implemented in the X11 video driver.</p>18980<p>Binds to C-function call in SDL_video.h:18981<code>int SDL_WM_ToggleFullScreen(SDL_Surface *surface);</code></p>18982</remarks>18983<param name="surface"></param>18984<returns>Returns 0 on failure or 1 on success.</returns>18985</member>18986<member name="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)">18987<summary>18988Grabs mouse and keyboard input.18989</summary>18990<remarks>18991Grabbing means that the mouse is confined to the application18992window,18993and nearly all keyboard input is passed directly to the18994application,18995and not interpreted by a window manager, if any.18996<p>18997When mode is SDL_GRAB_QUERY the grab mode is not changed, but the current grab mode is returned.18998</p>18999<p>Binds to C-function call in SDL_video.h:19000<code>SDL_GrabMode SDL_WM_GrabInput(SDL_GrabMode mode)</code></p>19001</remarks>19002<param name="mode">SDL_GrabMode</param>19003<returns>The current/new SDL_GrabMode.19004</returns>19005</member>19006<member name="P:Tao.Sdl.Sdl.AUDIO_U16SYS">19007<summary>19008Native audio byte ordering19009</summary>19010<remarks>19011<p>Based on code from SDL_audio.h19012<code>19013#if SDL_BYTEORDER == SDL_LIL_ENDIAN19014#define AUDIO_U16SYS AUDIO_U16LSB19015#define AUDIO_S16SYS AUDIO_S16LSB19016#else19017#define AUDIO_U16SYS AUDIO_U16MSB19018#define AUDIO_S16SYS AUDIO_S16MSB19019#endif19020</code>19021</p>19022</remarks>19023</member>19024<member name="P:Tao.Sdl.Sdl.AUDIO_S16SYS">19025<summary>19026Native audio byte ordering19027</summary>19028<remarks>19029<p>Based on code from SDL_audio.h19030<code>19031#if SDL_BYTEORDER == SDL_LIL_ENDIAN19032#define AUDIO_U16SYS AUDIO_U16LSB19033#define AUDIO_S16SYS AUDIO_S16LSB19034#else19035#define AUDIO_U16SYS AUDIO_U16MSB19036#define AUDIO_S16SYS AUDIO_S16MSB19037#endif19038</code>19039</p>19040</remarks>19041</member>19042<member name="P:Tao.Sdl.Sdl.SDL_BYTEORDER">19043<summary>19044Returns the endianness of the host system.19045</summary>19046<remarks>19047</remarks>19048<returns>Returns the endianness of the host system.</returns>19049</member>19050<member name="P:Tao.Sdl.Sdl.SDL_COMPILEDVERSION">19051<summary>19052This returns the current SDL version19053</summary>19054<remarks>19055<p>19056Binds to C-function call in SDL_version.h:19057<code>#define SDL_COMPILEDVERSION SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)</code>19058</p>19059</remarks>19060<returns>19061Returns the version number as a numeric value: (1.2.7 -> 1207)19062</returns>19063</member>19064<member name="T:Tao.Sdl.Sdl.SDL_AudioSpec">19065<summary>19066Audio Specification Structure19067</summary>19068<remarks>The calculated values in this structure are19069calculated by SDL_OpenAudio()19070The SDL_AudioSpec structure is used to describe the format of some19071audio data. This structure is used by SDL_OpenAudio and SDL_LoadWAV.19072While all fields are used by <see cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/> only19073freq, format, samples19074and channels are used by <see cref="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)"/>.19075We will detail these common members here.19076<p>Marshals C-struct in SDL_audio.h:19077<code>19078typedef struct{19079int freq;19080Uint16 format;19081Uint8 channels;19082Uint8 silence;19083Uint16 samples;19084Uint32 size;19085void (*callback)(void *userdata, Uint8 *stream, int len);19086void *userdata;19087} SDL_AudioSpec;19088</code></p>19089</remarks>19090<seealso cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/>19091<seealso cref="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)"/>19092</member>19093<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.freq">19094<summary>19095Audio frequency in samples per second19096</summary>19097<remarks>19098The number of samples sent to the sound device every second.19099Common values are 11025, 22050 and 44100. The higher the better.19100</remarks>19101</member>19102<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.format">19103<summary>19104Audio data format.19105</summary>19106<remarks>19107Specifies the size and type of each sample element.19108<list type="table">19109<item>19110<term><see cref="F:Tao.Sdl.Sdl.AUDIO_U8"/></term>19111<description>Unsigned 8-bit samples</description>19112</item>19113<item>19114<term><see cref="F:Tao.Sdl.Sdl.AUDIO_S8"/></term>19115<description>Signed 8-bit samples</description>19116</item>19117<item>19118<term><see cref="F:Tao.Sdl.Sdl.AUDIO_U16"/> <see cref="F:Tao.Sdl.Sdl.AUDIO_U16LSB"/></term>19119<description>Unsigned 16-bit little-endian samples</description>19120</item>19121<item>19122<term><see cref="F:Tao.Sdl.Sdl.AUDIO_S16"/> <see cref="F:Tao.Sdl.Sdl.AUDIO_S16LSB"/></term>19123<description>Signed 16-bit little-endian samples</description>19124</item>19125<item>19126<term><see cref="F:Tao.Sdl.Sdl.AUDIO_U16MSB"/></term>19127<description>Unsigned 16-bit big-endian samples</description>19128</item>19129<item>19130<term><see cref="F:Tao.Sdl.Sdl.AUDIO_S16MSB"/></term>19131<description>Signed 16-bit big-endian samples</description>19132</item>19133<item>19134<term><see cref="P:Tao.Sdl.Sdl.AUDIO_U16SYS"/></term>19135<description>Either AUDIO_U16LSB or19136AUDIO_U16MSB depending on you systems endianness19137</description>19138</item>19139<item>19140<term><see cref="P:Tao.Sdl.Sdl.AUDIO_S16SYS"/></term>19141<description>Either AUDIO_S16LSB or19142AUDIO_S16MSB depending on you systems endianness19143</description>19144</item>19145</list>19146</remarks>19147</member>19148<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.channels">19149<summary>19150Number of channels: 1 mono, 2 stereo.19151</summary>19152<remarks>19153The number of seperate sound channels.191541 is mono (single channel), 2 is stereo (dual channel).19155</remarks>19156</member>19157<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.silence">19158<summary>19159Audio buffer silence value (calculated).19160</summary>19161</member>19162<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.samples">19163<summary>19164Audio buffer size in samples.19165</summary>19166<remarks>19167When used with <see cref="M:Tao.Sdl.Sdl.SDL_OpenAudio(System.IntPtr,System.IntPtr)"/> this refers19168to the size of the19169audio buffer in samples. A sample a chunk of audio data19170of the size specified in format mulitplied by the number19171of channels. When the SDL_AudioSpec is used with19172<see cref="M:Tao.Sdl.Sdl.SDL_LoadWAV(System.String,System.IntPtr@,System.IntPtr@,System.Int32@)"/> samples is set to 4096.19173</remarks>19174</member>19175<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.padding">19176<summary>19177Necessary for some compile environments. Should not be used19178</summary>19179</member>19180<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.size">19181<summary>19182Audio buffer size in bytes (calculated)19183</summary>19184</member>19185<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.callback">19186<summary>19187Callback function for filling the audio buffer19188This function is called when the audio device needs more data.19189'stream' is a pointer to the audio data buffer19190'len' is the length of that buffer in bytes.19191Once the callback returns, the buffer will no longer be valid.19192Stereo samples are stored in a LRLRLR ordering.19193</summary>19194</member>19195<member name="F:Tao.Sdl.Sdl.SDL_AudioSpec.userdata">19196<summary>19197Pointer the user data which is passed to the callback function19198</summary>19199</member>19200<member name="T:Tao.Sdl.Sdl.SDL_AudioCVT">19201<summary>19202Audio Conversion Structure19203</summary>19204<remarks>19205The SDL_AudioCVT is used to convert audio data between different19206formats. A SDL_AudioCVT structure is created with the19207<see cref="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.Int16,System.Byte,System.Int32,System.Int16,System.Byte,System.Int32)"/> function, while the actual19208conversion is done by the SDL_ConvertAudio function.19209<p>Many of the fields in the <see cref="T:Tao.Sdl.Sdl.SDL_AudioCVT"/>19210structure should be considered private and their function19211will not be discussed here.</p>19212<p>19213<code>19214typedef struct{19215int needed;19216Uint16 src_format;19217Uint16 dest_format;19218double rate_incr;19219Uint8 *buf;19220int len;19221int len_cvt;19222int len_mult;19223double len_ratio;19224void (*filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);19225int filter_index;19226} SDL_AudioCVT;19227</code></p>19228</remarks>19229<seealso cref="M:Tao.Sdl.Sdl.SDL_BuildAudioCVT(System.IntPtr,System.Int16,System.Byte,System.Int32,System.Int16,System.Byte,System.Int32)"/>19230<seealso cref="M:Tao.Sdl.Sdl.SDL_ConvertAudio(System.IntPtr)"/>19231<seealso cref="T:Tao.Sdl.Sdl.SDL_AudioSpec"/>19232</member>19233<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.needed">19234<summary>19235Set to 1 if conversion possible19236</summary>19237</member>19238<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.src_format">19239<summary>19240Audio format of the source19241</summary>19242</member>19243<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.dst_format">19244<summary>19245Audio format of the destination19246</summary>19247</member>19248<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.rate_incr">19249<summary>19250Rate conversion increment19251</summary>19252</member>19253<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.buf">19254<summary>19255Buffer to hold entire audio data19256</summary>19257<remarks>19258This points to the audio data that will be used in the19259conversion. It is both the source and the destination,19260which means the converted audio data overwrites the original19261data. It also means that the converted data may be larger19262than the original data (if you were converting from 8-bit19263to 16-bit, for instance), so you must ensure buf is large19264enough. See below.19265<p>IntPtr to byte</p>19266</remarks>19267</member>19268<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.len">19269<summary>19270Length of original audio buffer in bytes19271</summary>19272</member>19273<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.len_cvt">19274<summary>19275Length of converted audio buffer in bytes (calculated)19276</summary>19277<remarks>19278This is the length of the original audio data in bytes.19279</remarks>19280</member>19281<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.len_mult">19282<summary>19283buf must be len*len_mult bytes in size(calculated)19284</summary>19285<remarks>19286As explained above, the audio buffer needs to be big enough19287to store the converted data, which may be bigger than the19288original audio data. The length of buf should be len*len_mult.19289</remarks>19290</member>19291<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.len_ratio">19292<summary>19293Final audio size is len*len_ratio19294</summary>19295<remarks>19296When you have finished converting your audio data, you need19297to know how much of your audio buffer is valid. len*len_ratio19298is the size of the converted audio data in bytes. This is19299very similar to len_mult, however when the convert audio19300data is shorter than the original len_mult would be 1.19301len_ratio, on the other hand, would be a fractional19302number between 0 and 1.19303</remarks>19304</member>19305<member name="F:Tao.Sdl.Sdl.SDL_AudioCVT.filter_index">19306<summary>19307Current audio conversion function19308</summary>19309</member>19310<member name="T:Tao.Sdl.Sdl.SDL_CDtrack">19311<summary>19312CD Track Information Structure19313</summary>19314<remarks>19315SDL_CDtrack stores data on each track on a CD,19316its fields should be pretty self explainatory.19317It is a member a the <see cref="T:Tao.Sdl.Sdl.SDL_CD"/> structure.19318<p>Note: Frames can be converted to standard timings.19319There are CD_FPS frames per second,19320so SDL_CDtrack.length/CD_FPS=length_in_seconds.</p>19321<p>Struct in SDL_cdrom.h19322<code>19323typedef struct{19324Uint8 id;19325Uint8 type;19326Uint32 length;19327Uint32 offset;19328} SDL_CDtrack;19329</code></p>19330</remarks>19331<seealso cref="T:Tao.Sdl.Sdl.SDL_CD"/>19332</member>19333<member name="F:Tao.Sdl.Sdl.SDL_CDtrack.id">19334<summary>19335Track number(0-99)19336</summary>19337</member>19338<member name="F:Tao.Sdl.Sdl.SDL_CDtrack.type">19339<summary>19340Data or audio track19341</summary>19342<remarks>19343SDL_AUDIO_TRACK or SDL_DATA_TRACK19344</remarks>19345</member>19346<member name="F:Tao.Sdl.Sdl.SDL_CDtrack.unused">19347<summary>19348Unused19349</summary>19350</member>19351<member name="F:Tao.Sdl.Sdl.SDL_CDtrack.length">19352<summary>19353Length, in frames, of this track19354</summary>19355</member>19356<member name="F:Tao.Sdl.Sdl.SDL_CDtrack.offset">19357<summary>19358Offset, in frames, from start of disk19359</summary>19360</member>19361<member name="T:Tao.Sdl.Sdl.SDL_CD">19362<summary>19363CDROM Drive Information.19364</summary>19365<remarks>19366An SDL_CD structure is returned by <see cref="M:Tao.Sdl.Sdl.SDL_CDOpen(System.Int32)"/>.19367It represents an19368opened CDROM device and stores information on the layout of the19369tracks on the disc.19370<p>A frame is the base data unit of a CD. CD_FPS frames is equal19371to 1 second of music. SDL provides two macros for converting19372between time and frames: FRAMES_TO_MSF(f, M,S,F) and19373MSF_TO_FRAMES.</p>19374<p>Struct from SDL_cdrom.h19375<code>19376typedef struct{19377int id;19378CDstatus status;19379int numtracks;19380int cur_track;19381int cur_frame;19382SDL_CDtrack track[SDL_MAX_TRACKS+1];19383} SDL_CD;19384</code></p>19385</remarks>19386<example>19387<code>19388int min, sec, frame;19389int frame_offset;1939019391FRAMES_TO_MSF(cdrom->cur_frame, &min, &sec, &frame);19392printf("Current Position: %d minutes, %d seconds, %d frames\n", min, sec, frame);1939319394frame_offset=MSF_TO_FRAMES(min, sec, frame);19395</code>19396</example>19397<seealso cref="M:Tao.Sdl.Sdl.SDL_CDOpen(System.Int32)"/>19398<seealso cref="T:Tao.Sdl.Sdl.SDL_CDtrack"/>19399</member>19400<member name="F:Tao.Sdl.Sdl.SDL_CD.id">19401<summary>19402Private drive identifier19403</summary>19404</member>19405<member name="F:Tao.Sdl.Sdl.SDL_CD.status">19406<summary>19407Current drive status19408</summary>19409<remarks>19410SDL_CDStatus enum19411</remarks>19412</member>19413<member name="F:Tao.Sdl.Sdl.SDL_CD.numtracks">19414<summary>19415Number of tracks on the CD19416</summary>19417</member>19418<member name="F:Tao.Sdl.Sdl.SDL_CD.cur_track">19419<summary>19420Current track19421</summary>19422</member>19423<member name="F:Tao.Sdl.Sdl.SDL_CD.cur_frame">19424<summary>19425Current frame offset within current track19426</summary>19427</member>19428<member name="F:Tao.Sdl.Sdl.SDL_CD.track">19429<summary>19430Array of track descriptions. (see <see cref="T:Tao.Sdl.Sdl.SDL_CDtrack"/>)19431</summary>19432</member>19433<member name="M:Tao.Sdl.Sdl.SDL_CD.#ctor">19434<summary>1943519436</summary>19437</member>19438<member name="T:Tao.Sdl.Sdl.SDL_CDTrackData">19439<summary>1944019441</summary>19442</member>19443<member name="M:Tao.Sdl.Sdl.SDL_CDTrackData.#ctor">19444<summary>1944519446</summary>19447</member>19448<member name="P:Tao.Sdl.Sdl.SDL_CDTrackData.Item(System.Int32)">19449<summary>1945019451</summary>19452</member>19453<member name="T:Tao.Sdl.Sdl.SDL_ActiveEvent">19454<summary>19455Application visibility event structure.19456</summary>19457<remarks>19458SDL_ActiveEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/>19459union and is used when an event of type SDL_ACTIVEEVENT19460is reported.19461<p>When the mouse leaves or enters the window area a19462SDL_APPMOUSEFOCUS type activation event occurs, if the19463mouse entered the window then gain will be 1, otherwise19464gain will be 0. A SDL_APPINPUTFOCUS type activation event19465occurs when the application loses or gains keyboard focus.19466This usually occurs when another application is made active.19467Finally, a SDL_APPACTIVE type event occurs when the application19468is either minimised/iconified (gain=0) or restored.</p>19469<p>Note: This event does not occur when an application window is19470first created.</p>19471<p>Struct in SDL_events.h19472<code>19473typedef struct{19474Uint8 type;19475Uint8 gain;19476Uint8 state;19477} SDL_ActiveEvent;19478</code></p>19479</remarks>19480<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19481<seealso cref="M:Tao.Sdl.Sdl.SDL_GetAppState"/>19482</member>19483<member name="F:Tao.Sdl.Sdl.SDL_ActiveEvent.type">19484<summary>19485SDL_ACTIVEEVENT19486</summary>19487</member>19488<member name="F:Tao.Sdl.Sdl.SDL_ActiveEvent.gain">19489<summary>194900 if the event is a loss or 1 if it is a gain.19491</summary>19492</member>19493<member name="F:Tao.Sdl.Sdl.SDL_ActiveEvent.state">19494<summary>19495SDL_APPMOUSEFOCUS if mouse focus was gained or lost,19496SDL_APPINPUTFOCUS if input focus was gained or lost,19497or SDL_APPACTIVE if the application was iconified19498(gain=0) or restored(gain=1).19499</summary>19500</member>19501<member name="T:Tao.Sdl.Sdl.SDL_KeyboardEvent">19502<summary>19503Keyboard event structure19504</summary>19505<remarks>19506SDL_KeyboardEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19507and is used when an event of type SDL_KEYDOWN or SDL_KEYUP is19508reported.19509<p>The type and state actually report the same information,19510they just use different values to do it! A keyboard event occurs19511when a key is released (type=SDK_KEYUP or state=SDL_RELEASED)19512and when a key is pressed (type=SDL_KEYDOWN or state=SDL_PRESSED).19513The information on what key was pressed or released is in the19514<see cref="T:Tao.Sdl.Sdl.SDL_keysym"/> structure.</p>19515<p>Note: Repeating SDL_KEYDOWN events will occur if key repeat19516is enabled (see <see cref="M:Tao.Sdl.Sdl.SDL_EnableKeyRepeat(System.Int32,System.Int32)"/>).</p>19517<p>Struct in SDL_events.h19518<code>19519typedef struct{19520Uint8 type;19521Uint8 state;19522SDL_keysym keysym;19523} SDL_KeyboardEvent;19524</code></p>19525</remarks>19526<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19527<seealso cref="T:Tao.Sdl.Sdl.SDL_keysym"/>19528<seealso cref="M:Tao.Sdl.Sdl.SDL_EnableKeyRepeat(System.Int32,System.Int32)"/>19529<seealso cref="M:Tao.Sdl.Sdl.SDL_EnableUNICODE(System.Int32)"/>19530</member>19531<member name="F:Tao.Sdl.Sdl.SDL_KeyboardEvent.type">19532<summary>19533SDL_KEYDOWN or SDL_KEYUP19534</summary>19535</member>19536<member name="F:Tao.Sdl.Sdl.SDL_KeyboardEvent.which">19537<summary>19538The keyboard device index19539</summary>19540</member>19541<member name="F:Tao.Sdl.Sdl.SDL_KeyboardEvent.state">19542<summary>19543SDL_PRESSED or SDL_RELEASED19544</summary>19545</member>19546<member name="F:Tao.Sdl.Sdl.SDL_KeyboardEvent.keysym">19547<summary>19548Contains key press information19549</summary>19550</member>19551<member name="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent">19552<summary>19553Mouse motion event structure19554</summary>19555<remarks>19556SDL_MouseMotionEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/>19557union and is19558used when an event of type SDL_MOUSEMOTION is reported.19559<p>Simply put, a SDL_MOUSEMOTION type event occurs when a user19560moves the mouse within the application window or when19561<see cref="M:Tao.Sdl.Sdl.SDL_WarpMouse(System.Int16,System.Int16)"/>19562is called. Both the absolute (x and y) and relative (xrel and yrel19563) coordinates are reported along with the current button states19564(state). The button state can be interpreted using the SDL_BUTTON19565macro (see <see cref="M:Tao.Sdl.Sdl.SDL_GetMouseState(System.Int32@,System.Int32@)"/>).</p>19566<p>If the cursor is hidden (<see cref="M:Tao.Sdl.Sdl.SDL_ShowCursor(System.Int32)"/>(0))19567and the input is19568grabbed (<see cref="M:Tao.Sdl.Sdl.SDL_WM_GrabInput(System.Int32)"/>(SDL_GRAB_ON)),19569then the mouse will give19570relative motion events even when the cursor reaches the edge fo19571the screen. This is currently only implemented on Windows and19572Linux/Unix-a-likes.</p>19573<p>Struct in SDL_events.h19574<code>19575typedef struct{19576Uint8 type;19577Uint8 which;19578Uint8 state;19579Uint16 x, y;19580Sint16 xrel, yrel;19581} SDL_MouseMotionEvent;19582</code></p>19583</remarks>19584<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19585<seealso cref="T:Tao.Sdl.Sdl.SDL_MouseButtonEvent"/>19586</member>19587<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.type">19588<summary>19589SDL_MOUSEMOTION19590</summary>19591</member>19592<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.which">19593<summary>19594The mouse device index19595</summary>19596</member>19597<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.state">19598<summary>19599The current button state19600</summary>19601</member>19602<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.x">19603<summary>19604The X coordinate of the mouse19605</summary>19606</member>19607<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.y">19608<summary>19609The Y coordinate of the mouse19610</summary>19611</member>19612<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.xrel">19613<summary>19614The relative motion in the X direction19615</summary>19616</member>19617<member name="F:Tao.Sdl.Sdl.SDL_MouseMotionEvent.yrel">19618<summary>19619The relative motion in the Y direction19620</summary>19621</member>19622<member name="T:Tao.Sdl.Sdl.SDL_MouseButtonEvent">19623<summary>19624Mouse button event structure19625</summary>19626<remarks>19627SDL_MouseButtonEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/>19628union and is used when an event of type SDL_MOUSEBUTTONDOWN or19629SDL_MOUSEBUTTONUP is reported.19630<p>When a mouse button press or release is detected then number19631of the button pressed (from 1 to 255, with 1 usually being the19632left button and 2 the right) is placed into button, the position19633of the mouse when this event occured is stored in the x and the19634y fields. Like <see cref="T:Tao.Sdl.Sdl.SDL_KeyboardEvent"/>, information on19635whether the event was a press or a release event is stored in19636both the type and state fields, but this should be obvious.19637</p>19638<p>Struct in SDL_events.h19639<code>19640typedef struct{19641Uint8 type;19642Uint8 button;19643Uint8 state;19644Uint16 x, y;19645} SDL_MouseButtonEvent;19646</code>19647</p>19648</remarks>19649<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19650<seealso cref="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent"/>19651</member>19652<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.type">19653<summary>19654SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP19655</summary>19656</member>19657<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.which">19658<summary>19659The mouse device index19660</summary>19661</member>19662<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.button">19663<summary>19664The mouse button index (SDL_BUTTON_LEFT,19665SDL_BUTTON_MIDDLE, SDL_BUTTON_RIGHT)19666</summary>19667</member>19668<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.state">19669<summary>19670SDL_PRESSED or SDL_RELEASED19671</summary>19672</member>19673<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.x">19674<summary>19675The X coordinate of the mouse at press/release time19676</summary>19677</member>19678<member name="F:Tao.Sdl.Sdl.SDL_MouseButtonEvent.y">19679<summary>19680The Y coordinate of the mouse at press/release time19681</summary>19682</member>19683<member name="T:Tao.Sdl.Sdl.SDL_JoyAxisEvent">19684<summary>19685Joystick axis motion event structure19686</summary>19687<remarks>19688SDL_JoyAxisEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19689and is used when an event of type SDL_JOYAXISMOTION is reported.19690<p>A SDL_JOYAXISMOTION event occurs when ever a user moves an19691axis on the joystick. The field which is the index of the19692joystick that reported the event and axis is the index of the19693axis (for a more detailed explaination see the Joystick section).19694value is the current position of the axis.</p>19695<p>19696<code>Struct in SDL_cdrom.h19697typedef struct{19698Uint8 type;19699Uint8 which;19700Uint8 axis;19701Sint16 value;19702} SDL_JoyAxisEvent;19703</code></p>19704</remarks>19705<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19706<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)"/>19707<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetAxis(System.IntPtr,System.Int32)"/>19708</member>19709<member name="F:Tao.Sdl.Sdl.SDL_JoyAxisEvent.type">19710<summary>19711SDL_JOYAXISMOTION19712</summary>19713</member>19714<member name="F:Tao.Sdl.Sdl.SDL_JoyAxisEvent.which">19715<summary>19716The joystick device index19717</summary>19718</member>19719<member name="F:Tao.Sdl.Sdl.SDL_JoyAxisEvent.axis">19720<summary>19721Joystick axis index19722</summary>19723</member>19724<member name="F:Tao.Sdl.Sdl.SDL_JoyAxisEvent.val">19725<summary>19726Axis value (range: -32768 to 32767)19727</summary>19728</member>19729<member name="T:Tao.Sdl.Sdl.SDL_JoyBallEvent">19730<summary>19731Joystick trackball motion event structure19732</summary>19733<remarks>19734SDL_JoyBallEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19735and is used when an event of type SDL_JOYBALLMOTION is reported.19736<p>A SDL_JOYBALLMOTION event occurs when a user moves a trackball19737on the joystick. The field which is the index of the joystick19738that reported the event and ball is the index of the trackball19739(for a more detailed explaination see the Joystick section).19740Trackballs only return relative motion, this is the change19741in position on the ball since it was last polled (last cycle19742of the event loop) and it is stored in xrel and yrel.</p>19743<p>Struct in SDL_events.h19744<code>19745typedef struct{19746Uint8 type;19747Uint8 which;19748Uint8 ball;19749Sint16 xrel, yrel;19750} SDL_JoyBallEvent;19751</code></p></remarks>19752<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19753<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)"/>19754<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetBall(System.IntPtr,System.Int32,System.Int32@,System.Int32@)"/>19755</member>19756<member name="F:Tao.Sdl.Sdl.SDL_JoyBallEvent.type">19757<summary>19758SDL_JOYBALLMOTION19759</summary>19760</member>19761<member name="F:Tao.Sdl.Sdl.SDL_JoyBallEvent.which">19762<summary>19763The joystick device index19764</summary>19765</member>19766<member name="F:Tao.Sdl.Sdl.SDL_JoyBallEvent.ball">19767<summary>19768The joystick trackball index19769</summary>19770</member>19771<member name="F:Tao.Sdl.Sdl.SDL_JoyBallEvent.xrel">19772<summary>19773The relative motion in the X direction19774</summary>19775</member>19776<member name="F:Tao.Sdl.Sdl.SDL_JoyBallEvent.yrel">19777<summary>19778The relative motion in the Y direction19779</summary>19780</member>19781<member name="T:Tao.Sdl.Sdl.SDL_JoyHatEvent">19782<summary>19783Joystick hat position change event structure19784</summary>19785<remarks>19786SDL_JoyHatEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19787and is used when an event of type SDL_JOYHATMOTION is reported.19788<p>A SDL_JOYHATMOTION event occurs when ever a user moves a hat19789on the joystick. The field which is the index of the joystick that19790reported the event and hat is the index of the hat (for a more19791detailed exlaination see the Joystick section). value is the19792current position of the hat. It is a logically OR'd combination19793of the following values (whose meanings should be pretty19794obvious:) :</p>19795<p>SDL_HAT_CENTERED</p>19796<p>SDL_HAT_UP</p>19797<p>SDL_HAT_RIGHT</p>19798<p>SDL_HAT_DOWN</p>19799<p>SDL_HAT_LEFT</p>19800<p>The following defines are also provided:</p>19801<p>SDL_HAT_RIGHTUP</p>19802<p>SDL_HAT_RIGHTDOWN</p>19803<p>SDL_HAT_LEFTUP</p>19804<p>SDL_HAT_LEFTDOWN</p>19805<p>Struct from SDL_events.h19806<code>19807typedef struct{19808Uint8 type;19809Uint8 which;19810Uint8 hat;19811Uint8 value;19812} SDL_JoyHatEvent;19813</code></p></remarks>19814<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19815<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)"/>19816<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetHat(System.IntPtr,System.Int32)"/>19817</member>19818<member name="F:Tao.Sdl.Sdl.SDL_JoyHatEvent.type">19819<summary>19820SDL_JOYHATMOTION19821</summary>19822</member>19823<member name="F:Tao.Sdl.Sdl.SDL_JoyHatEvent.which">19824<summary>19825The joystick device index19826</summary>19827</member>19828<member name="F:Tao.Sdl.Sdl.SDL_JoyHatEvent.hat">19829<summary>19830The joystick hat index19831</summary>19832</member>19833<member name="F:Tao.Sdl.Sdl.SDL_JoyHatEvent.val">19834<summary>19835The hat position value:19836<p><code>SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP19837SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT19838SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN</code></p>19839Note that zero means the POV is centered.19840</summary>19841</member>19842<member name="T:Tao.Sdl.Sdl.SDL_JoyButtonEvent">19843<summary>19844Joystick button event structure19845</summary>19846<remarks>19847SDL_JoyButtonEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/>19848union and is used when an event of type SDL_JOYBUTTONDOWN or19849SDL_JOYBUTTONUP is reported.19850<p>A SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP event occurs when ever19851a user presses or releases a button on a joystick. The field which19852is the index of the joystick that reported the event and button19853is the index of the button (for a more detailed explaination see19854the Joystick section). state is the current state or the button19855which is either SDL_PRESSED or SDL_RELEASED.</p>19856<p>Struct from SDL_events.h19857<code>19858typedef struct{19859Uint8 type;19860Uint8 which;19861Uint8 button;19862Uint8 state;19863} SDL_JoyButtonEvent;19864</code></p></remarks>19865<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19866<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickEventState(System.Int32)"/>19867<seealso cref="M:Tao.Sdl.Sdl.SDL_JoystickGetButton(System.IntPtr,System.Int32)"/>19868</member>19869<member name="F:Tao.Sdl.Sdl.SDL_JoyButtonEvent.type">19870<summary>19871SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP19872</summary>19873</member>19874<member name="F:Tao.Sdl.Sdl.SDL_JoyButtonEvent.which">19875<summary>19876The joystick device index19877</summary>19878</member>19879<member name="F:Tao.Sdl.Sdl.SDL_JoyButtonEvent.button">19880<summary>19881The joystick button index19882</summary>19883</member>19884<member name="F:Tao.Sdl.Sdl.SDL_JoyButtonEvent.state">19885<summary>19886SDL_PRESSED or SDL_RELEASED19887</summary>19888</member>19889<member name="T:Tao.Sdl.Sdl.SDL_ResizeEvent">19890<summary>19891Window resized event19892</summary>19893<remarks>19894SDL_ResizeEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19895and is used when an event of type SDL_VIDEORESIZE is reported.19896<p>When SDL_RESIZABLE is passed as a flag to19897<see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/> the user is allowed to resize the19898applications window. When the window is resized an19899SDL_VIDEORESIZE is report, with the new window width and height19900values stored in w and h, respectively. When an SDL_VIDEORESIZE19901is recieved the window should be resized to the new dimensions19902using <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>.</p>19903<p>Struct in SDL_events.h19904<code>19905typedef struct{19906Uint8 type;19907int w, h;19908} SDL_ResizeEvent;19909</code></p></remarks>19910<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19911<seealso cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>19912</member>19913<member name="F:Tao.Sdl.Sdl.SDL_ResizeEvent.type">19914<summary>19915SDL_VIDEORESIZE19916</summary>19917</member>19918<member name="F:Tao.Sdl.Sdl.SDL_ResizeEvent.w">19919<summary>19920New width of the window19921</summary>19922</member>19923<member name="F:Tao.Sdl.Sdl.SDL_ResizeEvent.h">19924<summary>19925New height of the window19926</summary>19927</member>19928<member name="T:Tao.Sdl.Sdl.SDL_ExposeEvent">19929<summary>19930Screen redraw event19931</summary>19932<remarks>19933SDL_ExposeEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19934and is used whan an event of type SDL_VIDEOEXPOSE is reported.19935<p>A VIDEOEXPOSE event is triggered when the screen has been19936modified outside of the application, usually by the window19937manager and needs to be redrawn.</p>19938<p>Struct in SDL_events.h19939<code>19940typedef struct{19941Uint8 type19942} SDL_ExposeEvent;19943</code>19944</p>19945</remarks>19946<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19947<seealso cref="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)"/>19948</member>19949<member name="F:Tao.Sdl.Sdl.SDL_ExposeEvent.type">19950<summary>19951SDL_VIDEOEXPOSE19952</summary>19953</member>19954<member name="T:Tao.Sdl.Sdl.SDL_QuitEvent">19955<summary>19956Quit requested event19957</summary>19958<remarks>19959SDL_QuitEvent is a member of the <see cref="T:Tao.Sdl.Sdl.SDL_Event"/> union19960and is used whan an event of type SDL_QUIT is reported.19961<p>As can be seen, the SDL_QuitEvent structure serves no useful19962purpose. The event itself, on the other hand, is very important.19963If you filter out or ignore a quit event then it is impossible19964for the user to close the window. On the other hand, if you do19965accept a quit event then the application window will be closed,19966and screen updates will still report success event though the19967application will no longer be visible.</p>19968<p>Note: The macro SDL_QuitRequested will return non-zero if a19969quit event is pending</p>19970<p>Struct in SDL_events.h19971<code>19972typedef struct{19973Uint8 type19974} SDL_QuitEvent;19975</code></p></remarks>19976<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>19977<seealso cref="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)"/>19978</member>19979<member name="F:Tao.Sdl.Sdl.SDL_QuitEvent.type">19980<summary>19981SDL_QUIT19982</summary>19983</member>19984<member name="T:Tao.Sdl.Sdl.SDL_UserEvent">19985<summary>19986A user-defined event type19987</summary>19988<remarks>19989SDL_UserEvent is in the user member of the structure19990<see cref="T:Tao.Sdl.Sdl.SDL_Event"/>. This event is unique, it is never created19991by SDL but only by the user. The event can be pushed onto the19992event queue using <see cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>.19993The contents of the structure19994members or completely up to the programmer, the only requirement19995is that type is a value from SDL_USEREVENT to SDL_NUMEVENTS-119996(inclusive).19997<p>Struct in SDL_events.h19998<code>19999typedef struct{20000Uint8 type;20001int code;20002void *data1;20003void *data2;20004} SDL_UserEvent;20005</code>20006</p>20007</remarks>20008<example>20009<code>20010SDL_Event event;2001120012event.type = SDL_USEREVENT;20013event.user.code = my_event_code;20014event.user.data1 = significant_data;20015event.user.data2 = 0;20016SDL_PushEvent(&event);20017</code>2001820019</example>20020<seealso cref="T:Tao.Sdl.Sdl.SDL_Event"/>20021<seealso cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>20022</member>20023<member name="F:Tao.Sdl.Sdl.SDL_UserEvent.type">20024<summary>20025SDL_USEREVENT through SDL_NUMEVENTS-120026</summary>20027</member>20028<member name="F:Tao.Sdl.Sdl.SDL_UserEvent.code">20029<summary>20030User defined event code20031</summary>20032</member>20033<member name="F:Tao.Sdl.Sdl.SDL_UserEvent.data1">20034<summary>20035User defined data pointer20036</summary>20037</member>20038<member name="F:Tao.Sdl.Sdl.SDL_UserEvent.data2">20039<summary>20040User defined data pointer20041</summary>20042</member>20043<member name="T:Tao.Sdl.Sdl.SDL_SysWMEvent">20044<summary>20045Platform-dependent window manager event.20046</summary>20047<remarks>20048The system window manager event contains a pointer to20049system-specific information about unknown window manager events.20050If you enable this event using <see cref="M:Tao.Sdl.Sdl.SDL_EventState(System.Byte,System.Int32)"/>,20051it will be generated whenever unhandled events are received from20052the window manager. This can be used, for example, to implement20053cut-and-paste in your application.20054<p>20055If you want to obtain system-specific information about the20056window manager, you can fill the version member of a20057SDL_SysWMinfo structure (details can be found in SDL_syswm.h,20058which must be included) using the SDL_VERSION() macro found20059in SDL_version.h, and pass it to the function:20060</p>20061<p><code>int SDL_GetWMInfo(SDL_SysWMinfo *info);</code></p>20062<p>Struct from SDL_events.h20063<code>20064typedef struct {20065Uint8 type; /* Always SDL_SYSWMEVENT */20066SDL_SysWMmsg *msg;20067} SDL_SysWMEvent;20068</code>20069</p></remarks>20070<seealso cref="M:Tao.Sdl.Sdl.SDL_EventState(System.Byte,System.Int32)"/>20071</member>20072<member name="F:Tao.Sdl.Sdl.SDL_SysWMEvent.type">20073<summary>2007420075</summary>20076</member>20077<member name="F:Tao.Sdl.Sdl.SDL_SysWMEvent.msg">20078<summary>20079IntPtr to SDL_SysWMmsg20080</summary>20081</member>20082<member name="T:Tao.Sdl.Sdl.SDL_Event">20083<summary>20084General event structure20085</summary>20086<remarks>20087The SDL_Event union is the core to all event handling is SDL,20088its probably the most important structure after SDL_Surface.20089SDL_Event is a union of all event structures used in SDL,20090using it is a simple matter of knowing which union member20091relates to which event type.20092<list type="table">20093<listheader>20094<term>Event type</term>20095<description>Event Structure</description>20096</listheader>20097<item>20098<term>SDL_ACTIVEEVENT</term>20099<description><see cref="T:Tao.Sdl.Sdl.SDL_ActiveEvent"/></description>20100</item>20101<item>20102<term>SDL_KEYDOWN</term>20103<description><see cref="T:Tao.Sdl.Sdl.SDL_KeyboardEvent"/></description>20104</item>20105<item>20106<term>SDL_KEYUP</term>20107<description><see cref="T:Tao.Sdl.Sdl.SDL_KeyboardEvent"/></description>20108</item>20109<item>20110<term>SDL_MOUSEMOTION</term>20111<description><see cref="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent"/></description>20112</item>20113<item>20114<term>SDL_MOUSEBUTTONDOWN</term>20115<description><see cref="T:Tao.Sdl.Sdl.SDL_MouseButtonEvent"/></description>20116</item>20117<item>20118<term>SDL_MOUSEBUTTONUP</term>20119<description><see cref="T:Tao.Sdl.Sdl.SDL_MouseButtonEvent"/></description>20120</item>20121<item>20122<term>SDL_JOYAXISMOTION</term>20123<description><see cref="T:Tao.Sdl.Sdl.SDL_JoyAxisEvent"/></description>20124</item>20125<item>20126<term>SDL_JOYBALLMOTION</term>20127<description><see cref="T:Tao.Sdl.Sdl.SDL_JoyBallEvent"/></description>20128</item>20129<item>20130<term>SDL_JOYHATMOTION</term>20131<description><see cref="T:Tao.Sdl.Sdl.SDL_JoyHatEvent"/></description>20132</item>20133<item>20134<term>SDL_JOYBUTTONDOWN</term>20135<description><see cref="T:Tao.Sdl.Sdl.SDL_JoyButtonEvent"/></description>20136</item>20137<item>20138<term>SDL_JOYBUTTONUP</term>20139<description><see cref="T:Tao.Sdl.Sdl.SDL_JoyButtonEvent"/></description>20140</item>20141<item>20142<term>SDL_QUIT</term>20143<description><see cref="T:Tao.Sdl.Sdl.SDL_QuitEvent"/></description>20144</item>20145<item>20146<term>SDL_SYSWMEVENT</term>20147<description><see cref="T:Tao.Sdl.Sdl.SDL_SysWMEvent"/></description>20148</item>20149<item>20150<term>SDL_VIDEORESIZE</term>20151<description><see cref="T:Tao.Sdl.Sdl.SDL_ResizeEvent"/></description>20152</item>20153<item>20154<term>SDL_VIDEOEXPOSE</term>20155<description><see cref="T:Tao.Sdl.Sdl.SDL_ExposeEvent"/></description>20156</item>20157<item>20158<term>SDL_USEREVENT</term>20159<description><see cref="T:Tao.Sdl.Sdl.SDL_UserEvent"/></description>20160</item>20161</list>20162<p>20163The SDL_Event structure has two uses20164<p>Reading events on the event queue</p>20165<p>Placing events on the event queue</p>20166<p>Reading events from the event queue is done with either20167<see cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/> or <see cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>.20168We'll use SDL_PollEvent and step through an example.</p>20169<p>First off, we create an empty SDL_Event structure.</p>20170<p><code>SDL_Event test_event;</code></p>20171<p>SDL_PollEvent removes the next event from the event queue, if20172there are no events on the queue it returns 0 otherwise it returns201731. We use a while loop to process each event in turn.</p>20174<p><code>while(SDL_PollEvent(&test_event)) { </code></p>20175<p>The SDL_PollEvent function take a pointer to an SDL_Event20176structure that is to be filled with event information. We know20177that if SDL_PollEvent removes an event from the queue then the20178event information will be placed in our test_event structure,20179but we also know that the type of event will be placed in the20180type member of test_event. So to handle each event type20181seperately we use a switch statement.</p>20182<p><code> switch(test_event.type) { </code></p>20183<p>We need to know what kind of events we're looking for and the20184event type's of those events. So lets assume we want to detect20185where the user is moving the mouse pointer within our application.20186We look through our event types and notice that SDL_MOUSEMOTION20187is, more than likely, the event we're looking for. A little more20188research tells use that SDL_MOUSEMOTION events are handled20189within the <see cref="T:Tao.Sdl.Sdl.SDL_MouseMotionEvent"/>20190structure which is the motion20191member of SDL_Event. We can check for the SDL_MOUSEMOTION20192event type within our switch statement like so: </p>20193<p><code>case SDL_MOUSEMOTION:</code></p>20194<p>All we need do now is read the information out of the20195motion member of test_event.</p>20196<code>20197printf("We got a motion event.\n");20198printf("Current mouse position is: (%d, %d)\n", test_event.motion.x, test_event.motion.y);20199break;20200default:20201printf("Unhandled Event!\n");20202break;20203}20204}20205printf("Event queue empty.\n");</code>20206<p>It is also possible to push events onto the event queue20207and so use it as a two-way communication path. Both20208<see cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/> and <see cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>20209allow you to place events onto the event queue. This is20210usually used to place a SDL_USEREVENT on the event queue,20211however you could use it to post fake input events if you20212wished. Creating your own events is a simple matter of20213choosing the event type you want, setting the type member20214and filling the appropriate member structure with information.20215</p><p>20216<code>20217SDL_Event user_event;2021820219user_event.type=SDL_USEREVENT;20220user_event.user.code=2;20221user_event.user.data1=NULL;20222user_event.user.data2=NULL;20223SDL_PushEvent(&user_event);20224</code>20225</p>20226<p>Union from SDL_events.h20227<code>20228typedef union{20229Uint8 type;20230SDL_ActiveEvent active;20231SDL_KeyboardEvent key;20232SDL_MouseMotionEvent motion;20233SDL_MouseButtonEvent button;20234SDL_JoyAxisEvent jaxis;20235SDL_JoyBallEvent jball;20236SDL_JoyHatEvent jhat;20237SDL_JoyButtonEvent jbutton;20238SDL_ResizeEvent resize;20239SDL_ExposeEvent expose;20240SDL_QuitEvent quit;20241SDL_UserEvent user;20242SDL_SywWMEvent syswm;20243} SDL_Event;20244</code></p></p></remarks>20245<seealso cref="M:Tao.Sdl.Sdl.SDL_PollEvent(Tao.Sdl.Sdl.SDL_Event@)"/>20246<seealso cref="M:Tao.Sdl.Sdl.SDL_PushEvent(Tao.Sdl.Sdl.SDL_Event@)"/>20247<seealso cref="M:Tao.Sdl.Sdl.SDL_PeepEvents(Tao.Sdl.Sdl.SDL_Event[],System.Int32,System.Int32,System.Int32)"/>20248</member>20249<member name="F:Tao.Sdl.Sdl.SDL_Event.type">20250<summary>2025120252</summary>20253</member>20254<member name="F:Tao.Sdl.Sdl.SDL_Event.active">20255<summary>20256Activation event20257</summary>20258</member>20259<member name="F:Tao.Sdl.Sdl.SDL_Event.key">20260<summary>20261Keyboard event20262</summary>20263</member>20264<member name="F:Tao.Sdl.Sdl.SDL_Event.motion">20265<summary>20266Mouse motion event20267</summary>20268</member>20269<member name="F:Tao.Sdl.Sdl.SDL_Event.button">20270<summary>20271Mouse button event20272</summary>20273</member>20274<member name="F:Tao.Sdl.Sdl.SDL_Event.jaxis">20275<summary>20276Joystick axis event20277</summary>20278</member>20279<member name="F:Tao.Sdl.Sdl.SDL_Event.jball">20280<summary>20281Joystick trackbell event20282</summary>20283</member>20284<member name="F:Tao.Sdl.Sdl.SDL_Event.jhat">20285<summary>20286Joystick hat motion event20287</summary>20288</member>20289<member name="F:Tao.Sdl.Sdl.SDL_Event.jbutton">20290<summary>20291Joystick button event20292</summary>20293</member>20294<member name="F:Tao.Sdl.Sdl.SDL_Event.resize">20295<summary>20296Application window resize event20297</summary>20298</member>20299<member name="F:Tao.Sdl.Sdl.SDL_Event.expose">20300<summary>20301Application window expose event20302</summary>20303</member>20304<member name="F:Tao.Sdl.Sdl.SDL_Event.quit">20305<summary>20306Quit request event20307</summary>20308</member>20309<member name="F:Tao.Sdl.Sdl.SDL_Event.user">20310<summary>20311User defined event20312</summary>20313</member>20314<member name="F:Tao.Sdl.Sdl.SDL_Event.syswm">20315<summary>20316Undefined window manager event20317</summary>20318</member>20319<member name="T:Tao.Sdl.Sdl.SDL_keysym">20320<summary>20321The SDL_keysym structure describes a key press or a key release.20322</summary>20323<remarks>20324The SDL_keysym structure describes a key press or a key release.20325The scancode field is hardware specific and should be ignored20326unless you know what your doing. The sym field is the SDLKey20327value of the key being pressed or released. The mod field20328describes the state of the keyboard modifiers at the time the20329key press or release occurred. So a value of KMOD_NUM | KMOD_CAPS20330| KMOD_LSHIFT would mean that Numlock, Capslock and the left shift20331key were all press (or enabled in the case of the lock keys).20332Finally, the unicode field stores the 16-bit unicode value of20333the key.20334<p>Note: It should be noted and understood that this field is20335only valid when the SDL_keysym is describing a key press,20336not a key release. Unicode values only make sense on a key20337press because the unicode value describes an international20338character and only key presses produce characters. More20339information on Unicode can be found at www.unicode.org</p>20340<p>Note: Unicode translation must be enabled using the20341<see cref="M:Tao.Sdl.Sdl.SDL_EnableUNICODE(System.Int32)"/> function.20342</p>20343<p>Struct in SDL_keyboard.h20344<code>20345typedef struct{20346Uint8 scancode;20347SDLKey sym;20348SDLMod mod;20349Uint16 unicode;20350} SDL_keysym;20351</code></p>20352</remarks>20353</member>20354<member name="F:Tao.Sdl.Sdl.SDL_keysym.scancode">20355<summary>20356Hardware specific scancode.20357</summary>20358<remarks>20359The scancode is hardware dependent,20360and should not be used by general20361applications.20362If no hardware scancode is available, it will be 0.20363</remarks>20364</member>20365<member name="F:Tao.Sdl.Sdl.SDL_keysym.sym">20366<summary>20367SDL virtual keysym.20368</summary>20369</member>20370<member name="F:Tao.Sdl.Sdl.SDL_keysym.mod">20371<summary>20372Current key modifiers.20373</summary>20374</member>20375<member name="F:Tao.Sdl.Sdl.SDL_keysym.unicode">20376<summary>20377Translated character.20378</summary>20379<remarks>20380The 'unicode' translated character is only available20381when character20382translation is enabled by the SDL_EnableUNICODE() API.20383If non-zero,20384this is a UNICODE character corresponding to the keypress.20385If the20386high 9 bits of the character are 0,20387then this maps to the equivalent20388ASCII character:20389<p><code>20390char ch;20391if ( (keysym.unicode and 0xFF80) == 0 ) {20392ch = keysym.unicode and 0x7F;20393} else {20394An international character..20395}</code></p>20396</remarks>20397</member>20398<member name="T:Tao.Sdl.Sdl.SDL_Cursor">20399<summary>20400Structure to hold cursor20401</summary>20402<remarks>20403<p>Struct in SDL_mouse.h20404<code>20405struct {20406SDL_Rect area; /* The area of the mouse cursor */20407Sint16 hot_x, hot_y; /* The "tip" of the cursor */20408Uint8 *data; /* B/W cursor data */20409Uint8 *mask; /* B/W cursor mask */20410Uint8 *save[2]; /* Place to save cursor area */20411WMcursor *wm_cursor; /* Window-manager cursor */20412} SDL_Cursor20413</code>20414</p>20415</remarks>20416</member>20417<member name="F:Tao.Sdl.Sdl.SDL_Cursor.area">20418<summary>20419The area of the mouse cursor20420</summary>20421</member>20422<member name="F:Tao.Sdl.Sdl.SDL_Cursor.hot_x">20423<summary>20424The "tip" of the cursor20425</summary>20426</member>20427<member name="F:Tao.Sdl.Sdl.SDL_Cursor.hot_y">20428<summary>20429The "tip" of the cursor20430</summary>20431</member>20432<member name="F:Tao.Sdl.Sdl.SDL_Cursor.data">20433<summary>20434B/W cursor data20435</summary>20436<remarks>20437IntPtr to byte20438</remarks>20439</member>20440<member name="F:Tao.Sdl.Sdl.SDL_Cursor.mask">20441<summary>20442B/W cursor mask20443</summary>20444<remarks>20445IntPtr to byte20446</remarks>20447</member>20448<member name="F:Tao.Sdl.Sdl.SDL_Cursor.save">20449<summary>20450Place to save cursor area20451</summary>20452<remarks>20453IntPtr to byte[2]20454</remarks>20455</member>20456<member name="F:Tao.Sdl.Sdl.SDL_Cursor.wm_cursor">20457<summary>20458Window-manager cursor20459</summary>20460<remarks>20461IntPtr to WMcursor20462</remarks>20463</member>20464<member name="T:Tao.Sdl.Sdl.SDL_SysWMmsg_Unix">20465<summary>20466The UNIX custom event structure. TODO20467</summary>20468<remarks>20469<p>Struct in SDL_syswm.h20470<code>20471struct SDL_SysWMmsg {20472SDL_version version;20473SDL_SYSWM_TYPE subsystem;20474union20475{20476XEvent xevent;20477} event;20478};20479</code>20480</p>20481</remarks>20482</member>20483<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Unix.version">20484<summary>2048520486</summary>20487</member>20488<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Unix.subsystem">20489<summary>2049020491</summary>20492</member>20493<member name="T:Tao.Sdl.Sdl.SDL_SysWMinfo_Unix">20494<summary>20495The UNIX custom window manager information structure. TODO20496</summary>20497<remarks>20498When this structure is returned, it holds information about which20499low level system it is using, and will be one of SDL_SYSWM_TYPE.20500<p>Struct in SDL_syswm.h20501<code>20502struct SDL_SysWMinfo {20503SDL_version version;20504SDL_SYSWM_TYPE subsystem;20505union20506{20507struct20508{20509Display *display; /* The X11 display */20510Window window; /* The X11 display window */20511/* These locking functions should be called around20512any X11 functions using the display variable.20513They lock the event thread, so should not be20514called around event functions or from event filters.20515*/20516void (*lock_func)(void);20517void (*unlock_func)(void);2051820519/* Introduced in SDL 1.0.2 */20520Window fswindow; /* The X11 fullscreen window */20521Window wmwindow; /* The X11 managed input window */20522} x11;20523} info;20524} SDL_SysWMinfo;20525</code>20526</p>20527</remarks>20528</member>20529<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_Unix.version">20530<summary>2053120532</summary>20533</member>20534<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_Unix.subsystem">20535<summary>2053620537</summary>20538</member>20539<member name="T:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows">20540<summary>20541The Windows custom event structure. TODO20542</summary>20543<remarks>20544<p>Struct in SDL_syswm.h20545<code>20546struct SDL_SysWMmsg {20547SDL_version version;20548HWND hwnd;20549UINT msg;20550WPARAM wParam;20551LPARAM lParam;20552};20553</code>20554</p>20555</remarks>20556</member>20557<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows.version">20558<summary>2055920560</summary>20561</member>20562<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows.hwnd">20563<summary>20564The window for the message20565</summary>20566</member>20567<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows.msg">20568<summary>20569The type of message20570</summary>20571</member>20572<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows.wParam">20573<summary>20574WORD message parameter20575</summary>20576</member>20577<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_Windows.lParam">20578<summary>20579LONG message parameter20580</summary>20581</member>20582<member name="T:Tao.Sdl.Sdl.SDL_SysWMinfo_Windows">20583<summary>20584The Windows custom window manager information structure. TODO20585</summary>20586<remarks>20587<p>Struct in SDL_syswm.h20588<code>20589struct SDL_SysWMinfo {20590SDL_version version;20591HWND window;20592HGLRC hglrc;20593} SDL_SysWMinfo;20594</code>20595</p>20596</remarks>20597</member>20598<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_Windows.version">20599<summary>2060020601</summary>20602</member>20603<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_Windows.window">20604<summary>20605The Win32 display window20606</summary>20607</member>20608<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_Windows.hglrc">20609<summary>20610The OpenGL context, if any20611</summary>20612</member>20613<member name="T:Tao.Sdl.Sdl.SDL_SysWMmsg_RiscOS">20614<summary>20615RISC OS custom event structure20616</summary>20617<remarks>20618<p>Struct in SDL_syswm.h20619<code>20620struct SDL_SysWMmsg {20621SDL_version version;20622int eventCode;20623int pollBlock[64];20624};20625</code>20626</p>20627</remarks>20628</member>20629<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_RiscOS.version">20630<summary>2063120632</summary>20633</member>20634<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_RiscOS.eventCode">20635<summary>20636The window for the message20637</summary>20638</member>20639<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg_RiscOS.pollBlock">20640<summary>20641The window for the message20642</summary>20643</member>20644<member name="T:Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS">20645<summary>20646The RISCOS custom window manager information structure20647</summary>20648<remarks>20649<p>Struct in SDL_syswm.h20650<code>20651struct SDL_SysWMinfo {20652SDL_version version;20653int wimpVersion;20654int taskHandle;20655int window;20656};20657</code>20658</p>20659</remarks>20660</member>20661<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS.version">20662<summary>2066320664</summary>20665</member>20666<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS.wimpVersion">20667<summary>20668Wimp version running under20669</summary>20670</member>20671<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS.taskHandle">20672<summary>20673The RISCOS task handle20674</summary>20675</member>20676<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo_RiscOS.window">20677<summary>2067820679</summary>20680</member>20681<member name="T:Tao.Sdl.Sdl.SDL_SysWMmsg">20682<summary>20683The generic custom event structure20684</summary>20685<remarks>20686<p>Struct in SDL_syswm.h20687<code>20688struct SDL_SysWMmsg {20689SDL_version version;20690int data;20691};20692</code>20693</p>20694</remarks>20695</member>20696<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg.version">20697<summary>2069820699</summary>20700</member>20701<member name="F:Tao.Sdl.Sdl.SDL_SysWMmsg.data">20702<summary>2070320704</summary>20705</member>20706<member name="T:Tao.Sdl.Sdl.SDL_SysWMinfo">20707<summary>20708The generic custom window manager information structure20709</summary>20710<remarks>20711<p>Struct in SDL_syswm.h20712<code>20713struct SDL_SysWMinfo {20714SDL_version version;20715int data;20716};20717</code>20718</p>20719</remarks>20720</member>20721<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo.version">20722<summary>2072320724</summary>20725</member>20726<member name="F:Tao.Sdl.Sdl.SDL_SysWMinfo.data">20727<summary>2072820729</summary>20730</member>20731<member name="T:Tao.Sdl.Sdl.SDL_TimerID">20732<summary>2073320734</summary>20735</member>20736<member name="T:Tao.Sdl.Sdl.SDL_version">20737<summary>20738Structure to hold version number of the SDL library20739</summary>20740</member>20741<member name="F:Tao.Sdl.Sdl.SDL_version.major">20742<summary>20743Major version20744</summary>20745</member>20746<member name="F:Tao.Sdl.Sdl.SDL_version.minor">20747<summary>20748Minor version20749</summary>20750</member>20751<member name="F:Tao.Sdl.Sdl.SDL_version.patch">20752<summary>20753Patch version20754</summary>20755</member>20756<member name="M:Tao.Sdl.Sdl.SDL_version.ToString">20757<summary>2075820759</summary>20760<returns></returns>20761</member>20762<member name="T:Tao.Sdl.Sdl.SDL_Rect">20763<summary>20764Defines a rectangular area.20765</summary>20766<remarks>20767A SDL_Rect defines a rectangular area of pixels.20768It is used by <see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/> to define blitting20769regions and by several other video functions.20770</remarks>20771<see cref="M:Tao.Sdl.Sdl.SDL_BlitSurface(System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@,System.IntPtr,Tao.Sdl.Sdl.SDL_Rect@)"/>20772<see cref="M:Tao.Sdl.Sdl.SDL_UpdateRect(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32)"/>20773</member>20774<member name="F:Tao.Sdl.Sdl.SDL_Rect.x">20775<summary>20776x position of the upper-left corner of the rectangle.20777</summary>20778</member>20779<member name="F:Tao.Sdl.Sdl.SDL_Rect.y">20780<summary>20781y position of the upper-left corner of the rectangle.20782</summary>20783</member>20784<member name="F:Tao.Sdl.Sdl.SDL_Rect.w">20785<summary>20786The width of the rectangle.20787</summary>20788</member>20789<member name="F:Tao.Sdl.Sdl.SDL_Rect.h">20790<summary>20791The height of the rectangle.20792</summary>20793</member>20794<member name="M:Tao.Sdl.Sdl.SDL_Rect.#ctor(System.Int16,System.Int16,System.Int16,System.Int16)">20795<summary>2079620797</summary>20798<param name="x"></param>20799<param name="y"></param>20800<param name="w"></param>20801<param name="h"></param>20802</member>20803<member name="M:Tao.Sdl.Sdl.SDL_Rect.ToString">20804<summary>2080520806</summary>20807<returns></returns>20808</member>20809<member name="T:Tao.Sdl.Sdl.SDL_Color">20810<summary>20811Format independent color description20812</summary>20813<remarks>20814SDL_Color describes a color in a format independent way.20815You can convert a SDL_Color to a pixel value for a certain20816pixel format using <see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/>.20817</remarks>20818<seealso cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/>20819<seealso cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>20820<seealso cref="T:Tao.Sdl.Sdl.SDL_Palette"/>20821</member>20822<member name="F:Tao.Sdl.Sdl.SDL_Color.r">20823<summary>20824Red Intensity20825</summary>20826</member>20827<member name="F:Tao.Sdl.Sdl.SDL_Color.g">20828<summary>20829Green Intensity20830</summary>20831</member>20832<member name="F:Tao.Sdl.Sdl.SDL_Color.b">20833<summary>20834Blue Intensity20835</summary>20836</member>20837<member name="F:Tao.Sdl.Sdl.SDL_Color.unused">20838<summary>20839Alpha Channel20840Currently unused20841</summary>20842</member>20843<member name="M:Tao.Sdl.Sdl.SDL_Color.#ctor(System.Byte,System.Byte,System.Byte)">20844<summary>2084520846</summary>20847<param name="r"></param>20848<param name="g"></param>20849<param name="b"></param>20850</member>20851<member name="M:Tao.Sdl.Sdl.SDL_Color.#ctor(System.Byte,System.Byte,System.Byte,System.Byte)">20852<summary>2085320854</summary>20855<param name="r"></param>20856<param name="g"></param>20857<param name="b"></param>20858<param name="a"></param>20859</member>20860<member name="T:Tao.Sdl.Sdl.SDL_Palette">20861<summary>20862Color palette for 8-bit pixel formats20863</summary>20864<remarks>20865Each pixel in an 8-bit surface is an index into20866the colors field of the SDL_Palette structure store20867in <see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/>. A SDL_Palette should never need20868to be created manually. It is automatically created20869when SDL allocates a <see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/> for a surface.20870The colors values of a <see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>20871palette can be set with the <see cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>.20872</remarks>20873<see cref="T:Tao.Sdl.Sdl.SDL_Color"/>20874<see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>20875<see cref="M:Tao.Sdl.Sdl.SDL_SetColors(System.IntPtr,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>20876<see cref="M:Tao.Sdl.Sdl.SDL_SetPalette(System.IntPtr,System.Int32,Tao.Sdl.Sdl.SDL_Color[],System.Int32,System.Int32)"/>20877</member>20878<member name="F:Tao.Sdl.Sdl.SDL_Palette.ncolors">20879<summary>20880Number of colors used in this palette20881</summary>20882</member>20883<member name="F:Tao.Sdl.Sdl.SDL_Palette.colors">20884<summary>20885Array of <see cref="T:Tao.Sdl.Sdl.SDL_Color"/>20886structures that make up the palette.20887</summary>20888</member>20889<member name="T:Tao.Sdl.Sdl.SDL_PixelFormat">20890<summary>20891Stores surface format information20892</summary>20893<remarks>20894A SDL_PixelFormat describes the format of the pixel data stored at the20895pixels field of a SDL_Surface. Every surface stores a SDL_PixelFormat20896in the format field.20897<p>20898If you wish to do pixel level modifications on a surface, then20899understanding how SDL stores its color information is essential.20900</p>20901<p>209028-bit pixel formats are the easiest to understand.20903Since its an 8-bit format, we have 8 BitsPerPixel and 1 BytesPerPixel.20904Since BytesPerPixel is 1, all pixels are represented by a Uint8 which20905contains an index into palette.colors. So, to determine the color20906of a pixel in a 8-bit surface: we read the color index from20907surface.pixels and we use that index to read the SDL_Color20908structure from surface.format.palette.colors. Like so:20909</p>20910<p>20911<code>20912SDL_Surface *surface;20913SDL_PixelFormat *fmt;20914SDL_Color *color;20915Uint8 index;2091620917.20918.2091920920/* Create surface */20921.20922.20923fmt=surface.format;2092420925/* Check the bitdepth of the surface */20926if(fmt.BitsPerPixel!=8)20927{20928fprintf(stderr, "Not an 8-bit surface.\n");20929return(-1);20930}2093120932/* Lock the surface */20933SDL_LockSurface(surface);2093420935/* Get the topleft pixel */20936index=*(Uint8 *)surface.pixels;20937color=fmt.palette.colors[index];2093820939/* Unlock the surface */20940SDL_UnlockSurface(surface);20941printf("Pixel Color- Red: %d, Green: %d, Blue: %d. Index: %d\n",20942color.r, color.g, color.b, index);20943.20944.20945</code>20946</p>20947<P>20948Pixel formats above 8-bit are an entirely different experience.20949They are considered to be "TrueColor" formats and the color20950information is stored in the pixels themselves, not in a palette.20951The mask, shift and loss fields tell us how the color information20952is encoded. The mask fields allow us to isolate each color20953component, the shift fields tell us the number of bits to the20954right of each component in the pixel value and the loss fields20955tell us the number of bits lost from each component when20956packing 8-bit color component in a pixel.20957</P>2095820959<code>20960/* Extracting color components from a 32-bit color value */20961SDL_PixelFormat *fmt;20962SDL_Surface *surface;20963Uint32 temp, pixel;20964Uint8 red, green, blue, alpha;20965.20966.20967.20968fmt=surface.format;20969SDL_LockSurface(surface);20970pixel=*((Uint32*)surface.pixels);20971SDL_UnlockSurface(surface);2097220973/* Get Red component */20974temp=pixel&fmt.Rmask; /* Isolate red component */20975temp=temp>>fmt.Rshift;/* Shift it down to 8-bit */20976temp=temp<<fmt.Rloss; /* Expand to a full 8-bit number */20977red=(Uint8)temp;2097820979/* Get Green component */20980temp=pixel&fmt.Gmask; /* Isolate green component */20981temp=temp>>fmt.Gshift;/* Shift it down to 8-bit */20982temp=temp<<fmt.Gloss; /* Expand to a full 8-bit number */20983green=(Uint8)temp;2098420985/* Get Blue component */20986temp=pixel&fmt.Bmask; /* Isolate blue component */20987temp=temp>>fmt.Bshift;/* Shift it down to 8-bit */20988temp=temp<<fmt.Bloss; /* Expand to a full 8-bit number */20989blue=(Uint8)temp;2099020991/* Get Alpha component */20992temp=pixel&fmt.Amask; /* Isolate alpha component */20993temp=temp>>fmt.Ashift;/* Shift it down to 8-bit */20994temp=temp<<fmt.Aloss; /* Expand to a full 8-bit number */20995alpha=(Uint8)temp;2099620997printf("Pixel Color - R: %d, G: %d, B: %d, A: %d\n", red, green, blue, alpha);20998.20999.21000.21001</code>21002</remarks>21003<see cref="T:Tao.Sdl.Sdl.SDL_Surface"/>21004<see cref="M:Tao.Sdl.Sdl.SDL_MapRGB(System.IntPtr,System.Byte,System.Byte,System.Byte)"/>21005</member>21006<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.palette">21007<summary>21008Pointer to the palette, or NULL if the BitsPerPixel>821009Pointer to <see cref="T:Tao.Sdl.Sdl.SDL_Palette"/>21010</summary>21011</member>21012<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.BitsPerPixel">21013<summary>21014The number of bits used to represent each pixel in a surface.21015Usually 8, 16, 24 or 32.21016</summary>21017</member>21018<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.BytesPerPixel">21019<summary>21020The number of bytes used to represent each pixel in a surface.21021Usually one to four.21022</summary>21023</member>21024<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Rloss">21025<summary>21026Precision loss of each color component (2[RGBA]loss)21027</summary>21028</member>21029<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Gloss">21030<summary>21031Precision loss of each color component (2[RGBA]loss)21032</summary>21033</member>21034<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Bloss">21035<summary>21036Precision loss of each color component (2[RGBA]loss)21037</summary>21038</member>21039<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Aloss">21040<summary>21041Precision loss of each color component (2[RGBA]loss)21042</summary>21043</member>21044<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Rshift">21045<summary>21046Binary left shift of each color component in the pixel value21047</summary>21048</member>21049<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Gshift">21050<summary>21051Binary left shift of each color component in the pixel value21052</summary>21053</member>21054<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Bshift">21055<summary>21056Binary left shift of each color component in the pixel value21057</summary>21058</member>21059<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Ashift">21060<summary>21061Binary left shift of each color component in the pixel value21062</summary>21063</member>21064<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Rmask">21065<summary>21066Binary mask used to retrieve individual color values21067</summary>21068</member>21069<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Gmask">21070<summary>21071Binary mask used to retrieve individual color values21072</summary>21073</member>21074<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Bmask">21075<summary>21076Binary mask used to retrieve individual color values21077</summary>21078</member>21079<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.Amask">21080<summary>21081Binary mask used to retrieve individual color values21082</summary>21083</member>21084<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.colorkey">21085<summary>21086Pixel value of transparent pixels21087</summary>21088</member>21089<member name="F:Tao.Sdl.Sdl.SDL_PixelFormat.alpha">21090<summary>21091Overall surface alpha value21092</summary>21093</member>21094<member name="M:Tao.Sdl.Sdl.SDL_PixelFormat.#ctor(System.IntPtr,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte)">21095<summary>2109621097</summary>21098<param name="palette"></param>21099<param name="BitsPerPixel"></param>21100<param name="BytesPerPixel"></param>21101<param name="Rloss"></param>21102<param name="Gloss"></param>21103<param name="Bloss"></param>21104<param name="Aloss"></param>21105<param name="Rshift"></param>21106<param name="Gshift"></param>21107<param name="Bshift"></param>21108<param name="Ashift"></param>21109<param name="Rmask"></param>21110<param name="Gmask"></param>21111<param name="Bmask"></param>21112<param name="Amask"></param>21113<param name="colorkey"></param>21114<param name="alpha"></param>21115</member>21116<member name="T:Tao.Sdl.Sdl.SDL_Surface">21117<summary>21118Graphical Surface Structure.21119</summary>21120<remarks>21121This structure should be treated as read-only, except for 'pixels',21122which, if not NULL, contains the raw pixel data for the surface.21123SDL_Surface's represent areas of "graphical" memory, memory21124that can be drawn to. The video framebuffer is returned as a21125SDL_Surface by SDL_SetVideoMode and SDL_GetVideoSurface.21126Most of the fields should be pretty obvious. w and h are the21127width and height of the surface in pixels. pixels is a pointer21128to the actual pixel data, the surface should be locked before21129accessing this field. The clip_rect field is the clipping rectangle21130as set by SDL_SetClipRect.2113121132<p>The following are supported in the flags field.</p>21133<code>21134SDL_SWSURFACE Surface is stored in system memory21135SDL_HWSURFACE Surface is stored in video memory21136SDL_ASYNCBLIT Surface uses asynchronous blits if possible21137SDL_ANYFORMAT Allows any pixel-format (Display surface)21138SDL_HWPALETTE Surface has exclusive palette21139SDL_DOUBLEBUF Surface is double buffered (Display surface)21140SDL_FULLSCREEN Surface is full screen (Display Surface)21141SDL_OPENGL Surface has an OpenGL context (Display Surface)21142SDL_OPENGLBLIT Surface supports OpenGL blitting (Display Surface)21143SDL_RESIZABLE Surface is resizable (Display Surface)21144SDL_HWACCEL Surface blit uses hardware acceleration21145SDL_SRCCOLORKEY Surface use colorkey blitting21146SDL_RLEACCEL Colorkey blitting is accelerated with RLE21147SDL_SRCALPHA Surface blit uses alpha blending21148SDL_PREALLOC Surface uses preallocated memory</code>21149</remarks>21150</member>21151<member name="F:Tao.Sdl.Sdl.SDL_Surface.flags">21152<summary>21153Surface flags21154</summary>21155</member>21156<member name="F:Tao.Sdl.Sdl.SDL_Surface.format">21157<summary>21158Pixel format21159Pointer to SDL_PixelFormat21160</summary>21161</member>21162<member name="F:Tao.Sdl.Sdl.SDL_Surface.w">21163<summary>21164Width of the surface21165</summary>21166</member>21167<member name="F:Tao.Sdl.Sdl.SDL_Surface.h">21168<summary>21169Height of the surface21170</summary>21171</member>21172<member name="F:Tao.Sdl.Sdl.SDL_Surface.pitch">21173<summary>21174Length of a surface scanline in bytes21175</summary>21176</member>21177<member name="F:Tao.Sdl.Sdl.SDL_Surface.pixels">21178<summary>21179Pointer to the actual pixel data21180Void pointer.21181</summary>21182</member>21183<member name="F:Tao.Sdl.Sdl.SDL_Surface.offset">21184<summary>2118521186</summary>21187</member>21188<member name="F:Tao.Sdl.Sdl.SDL_Surface.hwdata">21189<summary>21190Hardware-specific surface info21191</summary>21192</member>21193<member name="F:Tao.Sdl.Sdl.SDL_Surface.clip_rect">21194<summary>21195surface clip rectangle21196</summary>21197</member>21198<member name="F:Tao.Sdl.Sdl.SDL_Surface.unused1">21199<summary>2120021201</summary>21202</member>21203<member name="F:Tao.Sdl.Sdl.SDL_Surface.locked">21204<summary>21205Allow recursive locks21206</summary>21207</member>21208<member name="F:Tao.Sdl.Sdl.SDL_Surface.map">21209<summary>21210info for fast blit mapping to other surfaces21211</summary>21212</member>21213<member name="F:Tao.Sdl.Sdl.SDL_Surface.format_version">21214<summary>21215format version, bumped at every change to invalidate blit maps21216</summary>21217</member>21218<member name="F:Tao.Sdl.Sdl.SDL_Surface.refcount">21219<summary>21220Reference count -- used when freeing surface21221</summary>21222</member>21223<member name="T:Tao.Sdl.Sdl.SDL_VideoInfo">21224<summary>21225Video Target information.21226Useful for determining the video hardware capabilities.21227Not finished. The C struct uses a set of bit-fields that need to be marshalled.21228The vfmt IntPtr works and provided useful information.21229</summary>21230<remarks>21231This (read-only) structure is returned by <see cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo"/>.21232It contains information on either the 'best' available mode21233(if called before <see cref="M:Tao.Sdl.Sdl.SDL_SetVideoMode(System.Int32,System.Int32,System.Int32,System.Int32)"/>) or the current video mode.21234</remarks>21235<see cref="M:Tao.Sdl.Sdl.SDL_GetVideoInfo"/>21236<see cref="T:Tao.Sdl.Sdl.SDL_PixelFormat"/>21237</member>21238<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.field1">21239<summary>2124021241</summary>21242</member>21243<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.field2">21244<summary>2124521246</summary>21247</member>21248<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.unused">21249<summary>2125021251</summary>21252</member>21253<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.video_mem">21254<summary>21255Total amount of video memory in Kilobytes.21256</summary>21257</member>21258<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.vfmt">21259<summary>21260Pixel format of the video device. Pointer to SDL_PixelFormat.21261</summary>21262</member>21263<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.current_w">21264<summary>21265The current video mode width21266</summary>21267</member>21268<member name="F:Tao.Sdl.Sdl.SDL_VideoInfo.current_h">21269<summary>21270The current video mode height21271</summary>21272</member>21273<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.hw_available">21274<summary>21275Is it possible to create hardware surfaces?21276</summary>21277</member>21278<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.wm_available">21279<summary>21280Is there a window manager available21281</summary>21282</member>21283<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_hw">21284<summary>21285Are hardware to hardware blits accelerated?21286</summary>21287</member>21288<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_hw_CC">21289<summary>21290Are hardware to hardware colorkey blits accelerated?21291</summary>21292</member>21293<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_hw_A">21294<summary>21295Are hardware to hardware alpha blits accelerated?21296</summary>21297</member>21298<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_sw">21299<summary>21300Are software to hardware blits accelerated?21301</summary>21302</member>21303<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_sw_CC">21304<summary>21305Are software to hardware colorkey blits accelerated?21306</summary>21307</member>21308<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_sw_A">21309<summary>21310Are software to hardware alpha blits accelerated?21311</summary>21312</member>21313<member name="P:Tao.Sdl.Sdl.SDL_VideoInfo.blit_fill">21314<summary>21315Are color fills accelerated?21316</summary>21317</member>21318<member name="T:Tao.Sdl.Sdl.SDL_Overlay">21319<summary>21320The YUV hardware video overlay21321</summary>21322<remarks>21323A SDL_Overlay is similar to a SDL_Surface except21324it stores a YUV overlay. All the fields are read only,21325except for pixels which should be locked before use.21326The format field stores the format of the overlay21327which is one of the following:21328<code>21329SDL_YV12_OVERLAY 0x32315659 /* Planar mode: Y + V + U */21330SDL_IYUV_OVERLAY 0x56555949 /* Planar mode: Y + U + V */21331SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 */21332SDL_UYVY_OVERLAY 0x59565955 /* Packed mode: U0+Y0+V0+Y1 */21333SDL_YVYU_OVERLAY 0x55595659 /* Packed mode: Y0+V0+Y1+U0 */</code>2133421335More information on YUV formats can be found at21336http://www.webartz.com/fourcc/indexyuv.htm.21337</remarks>21338<see cref="M:Tao.Sdl.Sdl.SDL_CreateYUVOverlay(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>21339<see cref="M:Tao.Sdl.Sdl.SDL_LockYUVOverlay(System.IntPtr)"/>21340<see cref="M:Tao.Sdl.Sdl.SDL_UnlockYUVOverlay(System.IntPtr)"/>21341<see cref="M:Tao.Sdl.Sdl.SDL_FreeYUVOverlay(System.IntPtr)"/>21342</member>21343<member name="F:Tao.Sdl.Sdl.SDL_Overlay.format">21344<summary>21345Overlay format (see below)21346</summary>21347</member>21348<member name="F:Tao.Sdl.Sdl.SDL_Overlay.w">21349<summary>21350Width of overlay21351</summary>21352</member>21353<member name="F:Tao.Sdl.Sdl.SDL_Overlay.h">21354<summary>21355Height of overlay21356</summary>21357</member>21358<member name="F:Tao.Sdl.Sdl.SDL_Overlay.planes">21359<summary>21360Number of planes in the overlay. Usually either 1 or 3.21361</summary>21362</member>21363<member name="F:Tao.Sdl.Sdl.SDL_Overlay.pitches">21364<summary>21365An array of pitches, one for each plane.21366Pitch is the length of a row in bytes.21367</summary>21368</member>21369<member name="F:Tao.Sdl.Sdl.SDL_Overlay.pixels">21370<summary>21371An array of pointers to the data of each plane.21372The overlay should be locked before these pointers are used.21373</summary>21374</member>21375<member name="F:Tao.Sdl.Sdl.SDL_Overlay.hwfuncs">21376<summary>21377Hardware-specific surface info21378</summary>21379</member>21380<member name="F:Tao.Sdl.Sdl.SDL_Overlay.hwdata">21381<summary>2138221383</summary>21384</member>21385<member name="F:Tao.Sdl.Sdl.SDL_Overlay.field1">21386<summary>2138721388</summary>21389</member>21390<member name="P:Tao.Sdl.Sdl.SDL_Overlay.hw_overlay">21391<summary>21392This will be set to 1 if the overlay is hardware accelerated.21393</summary>21394</member>21395<member name="T:Tao.Sdl.Sdl.AudioSpecCallbackDelegate">21396<summary>21397Used in the SDL_AudioSpec struct21398</summary>21399</member>21400<member name="T:Tao.Sdl.Sdl.SDL_EventFilter">21401<summary>21402This function sets up a filter to process all events before they21403change internal state and are posted to the internal event queue.21404</summary>21405<param name="evt">21406Event.21407</param>21408<returns>21409If the filter returns 1, then the event will be added21410to the internal queue. If it returns 0, then the event21411will be dropped from the queue. This allows selective21412filtering of dynamically.21413</returns>21414<remarks>21415<p>21416Binds to C callback in SDL_events.h:21417<code>typedef Uint32 (SDLCALL *SDL_EventFilter)(const SDL_Event *event)</code>21418</p>21419</remarks>21420<seealso cref="M:Tao.Sdl.Sdl.SDL_SetEventFilter(Tao.Sdl.Sdl.SDL_EventFilter)"/>21421<seealso cref="M:Tao.Sdl.Sdl.SDL_GetEventFilter"/>21422</member>21423<member name="T:Tao.Sdl.Sdl.ThreadDelegate">21424<summary>21425int (SDLCALL *fn)(void *)21426</summary>21427</member>21428<member name="T:Tao.Sdl.Sdl.SDL_TimerCallback">21429<summary>21430Prototype for the timer callback.21431</summary>21432<param name="interval">21433The current timer interval.21434</param>21435<returns>21436The next timer interval.21437</returns>21438<remarks>21439<p>21440Binds to C callback in SDL_timer.h:21441<code>typedef Uint32 (SDLCALL *SDL_TimerCallback)(Uint32 interval, void *param)</code>21442</p>21443</remarks>21444<seealso cref="M:Tao.Sdl.Sdl.SDL_SetTimer(System.Int32,Tao.Sdl.Sdl.SDL_TimerCallback)"/>21445</member>21446<member name="T:Tao.Sdl.Sdl.SDL_NewTimerCallback">21447<summary>21448Prototype for the new timer callback.21449</summary>21450<param name="interval">21451The current timer interval.21452</param>21453<returns>21454The next timer interval.21455</returns>21456<remarks>21457<para>21458The callback function is passed the current timer interval21459and returns the next timer interval. If the returned21460value is the same as the one passed in, the periodic alarm21461continues, otherwise a new alarm is scheduled.21462If the callback returns 0, the periodic alarm is cancelled.21463</para>21464<p>21465Binds to C callback in SDL_timer.h:21466<code>typedef Uint32 (SDLCALL *SDL_NewTimerCallback)(Uint32 interval, void *param)</code>21467</p>21468</remarks>21469<seealso cref="M:Tao.Sdl.Sdl.SDL_AddTimer(System.Int32,Tao.Sdl.Sdl.SDL_NewTimerCallback)"/>21470<seealso cref="M:Tao.Sdl.Sdl.SDL_RemoveTimer(Tao.Sdl.Sdl.SDL_TimerID)"/>21471</member>21472</members>21473</doc>214742147521476