gamnit :: DynamicContext :: resize
depth_renderbuffer
and texture
# Init size or resize `depth_renderbuffer` and `texture`
fun resize(display: GamnitDisplay, max_dynamic_resolution_ratio: Float)
do
var width = (display.width.to_f * max_dynamic_resolution_ratio).to_i
var height = (display.height.to_f * max_dynamic_resolution_ratio).to_i
glBindFramebuffer(gl_FRAMEBUFFER, dynamic_framebuffer)
var depthbuffer = self.depth_renderbuffer
var texture = self.texture
# Depth
glBindRenderbuffer(gl_RENDERBUFFER, depthbuffer)
assert glIsRenderbuffer(depthbuffer)
glRenderbufferStorage(gl_RENDERBUFFER, gl_DEPTH_COMPONENT16, width, height)
glFramebufferRenderbuffer(gl_FRAMEBUFFER, gl_DEPTH_ATTACHMENT, gl_RENDERBUFFER, depthbuffer)
assert glGetError == gl_NO_ERROR
# Texture
glBindTexture(gl_TEXTURE_2D, texture)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, gl_LINEAR)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE)
glTexImage2D(gl_TEXTURE_2D, 0, gl_RGB, width, height,
0, gl_RGB, gl_UNSIGNED_BYTE, new Pointer.nul)
glFramebufferTexture2D(gl_FRAMEBUFFER, gl_COLOR_ATTACHMENT0, gl_TEXTURE_2D, texture, 0)
assert glGetError == gl_NO_ERROR
# Take down
glBindRenderbuffer(gl_RENDERBUFFER, 0)
glBindFramebuffer(gl_FRAMEBUFFER, 0)
assert glGetError == gl_NO_ERROR
end
lib/gamnit/dynamic_resolution.nit:249,2--284,4