gamnit :: ShadowContext :: resize
depth_texture
# Init size or resize `depth_texture`
fun resize(display: GamnitDisplay, shadow_resolution: Int)
do
glBindFramebuffer(gl_FRAMEBUFFER, light_view_framebuffer)
var gl_error = glGetError
assert gl_error == gl_NO_ERROR else print_error gl_error
# Depth texture
var depth_texture = self.depth_texture
glActiveTexture gl_TEXTURE0
glBindTexture(gl_TEXTURE_2D, depth_texture)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MIN_FILTER, gl_LINEAR)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_MAG_FILTER, gl_NEAREST)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_S, gl_CLAMP_TO_EDGE)
glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_WRAP_T, gl_CLAMP_TO_EDGE)
gl_error = glGetError
assert gl_error == gl_NO_ERROR else print_error gl_error
# TODO support hardware shadows with GL ES 3.0 or GL_EXT_shadow_samplers
#glTexParameteri(gl_TEXTURE_2D, gl_TEXTURE_COMPARE_MODE, ...)
glTexImage2D(gl_TEXTURE_2D, 0, gl_DEPTH_COMPONENT,
shadow_resolution, shadow_resolution,
0, gl_DEPTH_COMPONENT, gl_UNSIGNED_SHORT, new Pointer.nul)
gl_error = glGetError
assert gl_error == gl_NO_ERROR else print_error gl_error
glFramebufferTexture2D(gl_FRAMEBUFFER, gl_DEPTH_ATTACHMENT, gl_TEXTURE_2D, depth_texture, 0)
gl_error = glGetError
assert gl_error == gl_NO_ERROR else print_error gl_error
# Check if the framebuffer is complete and valid
assert glCheckFramebufferStatus(gl_FRAMEBUFFER) == gl_FRAMEBUFFER_COMPLETE
# Take down
glBindTexture(gl_TEXTURE_2D, 0)
glBindFramebuffer(gl_FRAMEBUFFER, 0)
gl_error = glGetError
assert gl_error == gl_NO_ERROR else print_error gl_error
end
lib/gamnit/depth/shadow.nit:249,2--288,4