Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Lua FBO and RBO

From Fightorder
Revision as of 11:30, 17 February 2019 by interwiki3>Ivand (RBO)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Development < Lua Scripting < Lua FBO and RBO

FBO

gl.CreateFBO

 ( [ table initialization ] ) -> userdata fbo

 initialization table can contain:
   attachment ::= luaTex or RBO or nil or { luaTex [, num target [, num level ] ] }
   {
     depth   = attachment,
     stencil = attachment,
     color0  = attachment,
     color1  = attachment,
     color2  = attachment,
     ..
     color15 = attachment,
     drawbuffers = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT3_EXT, ..}
   }

gl.DeleteFBO (This doesn't delete the attached objects!)

 ( fbo ) -> nil

gl.IsValidFBO

 ( fbo [, number target ] ) -> boolean valid [, number status ]

gl.ActiveFBO

 ( fbo [, number target ] [, boolean identities ] , lua_function, arg1, arg2, ... ) -> nil

gl.UnsafeSetFBO (Binds a FBO like gl.ActiveFBO() does, but you have to unbind it yourself!)

 ( nil [, number target = GL_FRAMEBUFFER_EXT ] ) -> nil (Bind default screenbuffer)
 ( fbo [, number target = fbo.target ] ) -> nil

gl.RawBindFBO (Replaces UnsafeSetFBO starting from 104.0.1-1003-gb3e02a6 maintenance)

 ( nil [, number target = GL_FRAMEBUFFER_EXT ] [, number rawFboId = 0] ) -> nil (Bind default or specified via rawFboId numeric id of FBO)
 ( fbo [, number target = fbo.target ] ) -> number previouslyBoundRawFboId

gl.BlitFBO needs GLEW_EXT_framebuffer_blit

 ( int x0Src,y0Src,x1Src,y1Src,
   int x0Dst,y0Dst,x1Dst,y1Dst
   [, number mask = GL_COLOR_BUFFER_BIT [, number filter = GL_NEAREST ] ] ) -> nil
 ( fboSrc , int x0Src,y0Src,x1Src,y1Src,
   fboDst , int x0Dst,y0Dst,x1Dst,y1Dst
   [, number mask = GL_COLOR_BUFFER_BIT [, number filter = GL_NEAREST ] ] ) -> nil


Userdata FBO

  attachment ::= luaTex or RBO or nil or { luaTex or RBO [, num target [, num level ]] }
 write-only methods are:
   fbo.depth   = attachment
   fbo.stencil = attachment
   fbo.color0  = attachment
    ..
   fbo.color15 = attachment
   fbo.drawbuffers = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT3_EXT, ..}
   fbo.readbuffer  = GL_COLOR_ATTACHMENT0_EXT

RBO

gl.CreateRBO

 ( int xsize, int ysize,
   [ {
     target = GL_RENDERBUFFER_EXT,
     format = GL_RGBA,
     [samples = number],  any number here will result in creation of multisampled RBO (Added in 104.0.1-1015-g8e36ef2 maintenance)
   } ]) -> userdata rbo

gl.DeleteRBO

 ( rbo ) -> nil

Userdata RBO

 read-only methods are:
   rbo.target  = number
   rbo.format  = number
   rbo.xsize   = number
   rbo.ysize   = number
   rbo.valid   = boolean
   rbo.samples = number  will return globalRendering->msaaLevel for multisampled RBO or 0 otherwise (Added in 104.0.1-1015-g8e36ef2 maintenance)