# Class: capability

Certain system (hardware related) capabilites can be queried for support here.

## Methods:

### Method overview:

- bufferblit
- dot3normalmap
- drawbuffers
- fbo
- hwshadow
- pbo
- pointsprites
- r2vb
- renderbuffermsaa
- stenciltwosided
- stencilwrap
- tex3d
- tex3dsize
- texabgr
- texanisotropic
- texarray
- texarraylayers
- texautomipmap
- texbarrir
- texbgr
- texbuffer
- texcomb_combine4
- texcomb_crossbar
- texcomb_dot3
- texcomb_modadd
- texcomb_subtract
- texcompress
- texcube
- texdds
- texdepthstencil
- texfloat
- texinteger
- texnp2
- texrectangle
- texrg
- texsize
- texvertex
- vbo
- vramsize

bufferblit ()
  returns: (boolean)
  returns support for blitting from one to another renderfbo/backbuffer via rcmdbufferblit
dot3normalmap ()
  returns: (boolean)
  returns support for VID_NORMAL combiner in shader system.
drawbuffers ()
  returns: (int)
  returns maximum number of multiple render targets for color drawbuffers
fbo ()
  returns: (boolean)
  returns support for framebufferobjects (fbo), allow enhanced rendertotexture. Especially rendering to multiple drawbuffers or textures with larger size than window. renderfbo, renderbuffer, rcmdfbobind ... need this capability.
hwshadow ()
  returns: (boolean)
  returns support for shadow map comparison and depth textures
pbo ()
  returns: (boolean)
  returns support for pixel buffer objects, useful for loading/retrieven image data asynchronously.
pointsprites ()
  returns: (boolean)
  returns if particle points can be rendered as sprites (quad-like textured).
r2vb ()
  returns: (boolean)
  returns support for render 2 vertexbuffer functionality, useful to capture vertex stream output.
renderbuffermsaa ()
  returns: ([int])
  returns number of maximum samples of multisampled renderbuffers, or nil if no support is given.
stenciltwosided ()
  returns: (boolean)
  returns support for two-sided stencil testing
stencilwrap ()
  returns: (boolean)
  returns support for wrapped increment and decrement
tex3d ()
  returns: (boolean)
  returns support for 3d textures
tex3dsize ()
  returns: (int)
  returns maximum dimension of 3d texture
texabgr ()
  returns: (boolean)
  returns support for ABGR texture data
texanisotropic ()
  returns: ([float])
  returns maximum anisotropic value for texture filtering, if supported.
texarray ()
  returns: (boolean)
  returns support for array textures, typically requires capability.cg_sm4 as well.
texarraylayers ()
  returns: (int)
  returns how many texture layers in array textures are available.
texautomipmap ()
  returns: (boolean)
  returns support for automatic mipmaps
texbarrir ()
  returns: (boolean)
  returns support texbarrier functionality (read and write same texture once, ie. custom blending). allows 'texbarrier' keyword in shader files.
texbgr ()
  returns: (boolean)
  returns support for BGR,BGRA texture data
texbuffer ()
  returns: (boolean)
  returns support for buffer textures, typically requires capability.cg_sm4 as well.
texcomb_combine4 ()
  returns: (boolean)
  returns support for combine4 in texcombiners
texcomb_crossbar ()
  returns: (boolean)
  returns support for access to all texture units in texcombiners
texcomb_dot3 ()
  returns: (boolean)
  returns support for dot3 in texcombiners
texcomb_modadd ()
  returns: (boolean)
  returns support for modulated add functions in texcombiners
texcomb_subtract ()
  returns: (boolean)
  returns support for subtract in texcombiners
texcompress ()
  returns: (boolean)
  returns support for texture compression
texcube ()
  returns: (boolean)
  returns support for cubemap textures
texdds ()
  returns: (boolean)
  returns support for dds texture loading
texdepthstencil ()
  returns: (boolean)
  returns support for a packed format of 24bit depth and 8bit stencil texture.
texfloat ()
  returns: (boolean)
  returns support for float16 and float32 textures
texinteger ()
  returns: (boolean)
  returns support for integer textures, typically requires capability.cg_sm4 as well.
texnp2 ()
  returns: (boolean)
  returns support for non power of two texture dimensions. Currently only supported for 3d textures. For 2d textures use rectangle capability.
texrectangle ()
  returns: (boolean)
  returns support for rectangle textures
texrg ()
  returns: (boolean)
  returns support for R and RG textures.
texsize ()
  returns: (int)
  returns maximum texture side length (1d or 2d).
texvertex ()
  returns: (int)
  returns number of textures that can be accessed in vertex shader
vbo ()
  returns: (boolean)
  returns support for vbo
vramsize ()
  returns: (int)
  returns video ram (can be 0 if query did not work)